Function at 0x4032ac
Capabilities:
Resolve function by parsing pe exports

Disassembly:
push ebp
push edi
push esi
push ebx
sub esp, 0xcc
mov ebx, eax
mov ebp, edx
test edx, edx
je case.0x4032e4.45
mov esi, dword [eax + 4]
mov edx, esi
test esi, esi
je case.0x404656.0
mov ecx, dword [ebp]
cmp ecx, 0x32
jbe switch.0x004032e4
mov eax, ebx
call fcn.004020d0
add esp, 0xcc
pop ebx
pop esi
pop edi
pop ebp
ret
jmp dword [ecx*4 + 0x40e6e4]
mov edx, dword [eax + 8]
lea eax, [edx + 0x11]
cmp eax, dword [ebx + 0xc]
ja 0x404238
lea edi, [esi + edx]
mov eax, str.hidden_alias_for
cld
mov esi, eax
movsd dword es:[edi], dword [esi]
mov dword [esp + 0x18], esi
movsd dword es:[edi], dword [esi]
mov dword [esp + 0x18], esi
movsd dword es:[edi], dword [esi]
mov dword [esp + 0x18], esi
movsd dword es:[edi], dword [esi]
mov dword [esp + 0x18], esi
movsb byte es:[edi], byte [esi]
add dword [ebx + 8], 0x11
nop
mov edx, dword [ebp + 4]
mov eax, ebx
call fcn.004032ac
add esp, 0xcc
pop ebx
pop esi
pop edi
pop ebp
ret
mov edx, dword [eax + 8]
lea eax, [edx + 0x18]
cmp eax, dword [ebx + 0xc]
ja 0x404290
lea edi, [esi + edx]
mov eax, str.construction_vtable_for
cld
mov ecx, 6
mov esi, eax
rep movsd dword es:[edi], dword [esi]
add dword [ebx + 8], 0x18
mov edx, dword [ebp + 4]
mov eax, ebx
call fcn.004032ac
mov ecx, dword [ebx + 4]
test ecx, ecx
je 0x40337a
mov edx, dword [ebx + 8]
lea eax, [edx + 4]
cmp eax, dword [ebx + 0xc]
jbe 0x404435
mov ecx, 4
mov edx, str._in_
mov eax, ebx
call fcn.00403224
mov edx, dword [ebp + 8]
mov eax, ebx
call fcn.004032ac
jmp case.0x404656.0
mov edx, dword [ebx + 8]
mov ecx, dword [ebp + 8]
lea eax, [edx + ecx]
cmp eax, dword [ebx + 0xc]
ja 0x404073
lea eax, [esi + edx]
push edx
push ecx
push dword [ebp + 4]
push eax
call sub.msvcrt.dll_memcpy
mov eax, dword [ebp + 8]
add dword [ebx + 8], eax
add esp, 0x10
jmp case.0x404656.0
mov eax, dword [ebp + 8]
cmp dword [eax], 0x2f
jne case.0x4032e4.45
mov eax, dword [eax + 8]
cmp dword [eax], 0x30
jne case.0x4032e4.45
mov eax, dword [ebx + 8]
cmp eax, dword [ebx + 0xc]
jae 0x404679
mov byte [esi + eax], 0x28
inc eax
mov dword [ebx + 8], eax
mov eax, dword [ebp + 8]
mov edx, dword [eax + 4]
mov eax, ebx
call fcn.004032ac
mov ecx, dword [ebx + 4]
test ecx, ecx
je 0x403417
mov edx, dword [ebx + 8]
lea eax, [edx + 2]
cmp eax, dword [ebx + 0xc]
jbe 0x4046a6
mov ecx, 2
mov edx, 0x40e6c0
mov eax, ebx
call fcn.00403224
mov edx, dword [ebp + 4]
mov eax, ebx
call fcn.004049fc
mov ecx, dword [ebx + 4]
test ecx, ecx
je 0x403448
mov edx, dword [ebx + 8]
lea eax, [edx + 2]
cmp eax, dword [ebx + 0xc]
jbe 0x40468a
mov ecx, 2
mov edx, 0x40e6c3
mov eax, ebx
call fcn.00403224
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov edx, dword [eax + 4]
mov eax, ebx
call fcn.004032ac
mov ecx, dword [ebx + 4]
test ecx, ecx
je 0x40347f
mov edx, dword [ebx + 8]
lea eax, [edx + 5]
cmp eax, dword [ebx + 0xc]
jbe 0x4046c6
mov ecx, 5
mov edx, str.__:__
mov eax, ebx
call fcn.00403224
mov eax, dword [ebp + 8]
mov eax, dword [eax + 8]
mov edx, dword [eax + 8]
mov eax, ebx
call fcn.004032ac
mov edx, dword [ebx + 4]
test edx, edx
je 0x4040f9
mov eax, dword [ebx + 8]
cmp eax, dword [ebx + 0xc]
jae 0x4040f9
mov byte [edx + eax], 0x29
inc eax
mov dword [ebx + 8], eax
jmp case.0x404656.0
test byte [eax], 4
je case.0x4032e4.21
mov ecx, dword [ebp + 4]
mov ebp, dword [ebp + 8]
add ebp, ecx
mov dword [esp + 0x64], ebp
cmp ecx, ebp
jb 0x4034fe
jmp case.0x404656.0
mov al, byte [ecx]
mov byte [esi + edx], al
lea eax, [edx + 1]
mov dword [ebx + 8], eax
mov ecx, edi
cmp ecx, dword [esp + 0x64]
jae case.0x404656.0
mov esi, dword [ebx + 4]
mov eax, dword [esp + 0x64]
sub eax, ecx
cmp eax, 3
jle 0x403512
cmp byte [ecx], 0x5f
je 0x404082
lea edi, [ecx + 1]
test esi, esi
je 0x403521
mov edx, dword [ebx + 8]
cmp edx, dword [ebx + 0xc]
jb 0x4034e4
movsx edx, byte [ecx]
mov eax, ebx
call fcn.0040326c
mov ecx, edi
jmp 0x4034f1
mov edx, dword [eax + 8]
lea eax, [edx + 0x11]
cmp eax, dword [ebx + 0xc]
ja 0x40419e
lea edi, [esi + edx]
mov eax, str.virtual_thunk_to
cld
mov esi, eax
movsd dword es:[edi], dword [esi]
mov dword [esp + 0x2c], esi
movsd dword es:[edi], dword [esi]
mov dword [esp + 0x2c], esi
movsd dword es:[edi], dword [esi]
mov dword [esp + 0x2c], esi
movsd dword es:[edi], dword [esi]
mov dword [esp + 0x2c], esi
movsb byte es:[edi], byte [esi]
add dword [ebx + 8], 0x11
jmp case.0x4032e4.34
mov edx, dword [eax + 8]
lea eax, [edx + 0x15]
cmp eax, dword [ebx + 0xc]
ja 0x40415c
lea edi, [esi + edx]
mov eax, str.non_virtual_thunk_to
cld
mov ecx, 5
mov esi, eax
rep movsd dword es:[edi], dword [esi]
mov dword [esp + 0x30], esi
movsb byte es:[edi], byte [esi]
add dword [ebx + 8], 0x15
jmp case.0x4032e4.34
mov edx, dword [eax + 8]
lea eax, [edx + 0x10]
cmp eax, dword [ebx + 0xc]
ja 0x4042bc
lea edi, [esi + edx]
mov eax, str.typeinfo_fn_for
cld
mov esi, eax
movsd dword es:[edi], dword [esi]
mov dword [esp + 0x34], esi
movsd dword es:[edi], dword [esi]
mov dword [esp + 0x34], esi
movsd dword es:[edi], dword [esi]
mov dword [esp + 0x34], esi
movsd dword es:[edi], dword [esi]
add dword [ebx + 8], 0x10
jmp case.0x4032e4.34
mov esi, dword [eax + 0x14]
mov dword [esp + 0x48], esi
mov edi, dword [ebp + 4]
mov dword [esp + 0x4c], edi
test edi, edi
je 0x404699
mov eax, dword [esp + 0x48]
mov dword [esp + 0x74], eax
lea edx, [esp + 0x74]
mov dword [ebx + 0x14], edx
mov ecx, dword [esp + 0x4c]
mov dword [esp + 0x78], ecx
mov dword [esp + 0x7c], 0
mov ecx, dword [ebx + 0x10]
mov dword [esp + 0x80], ecx
mov esi, dword [esp + 0x4c]
mov eax, dword [esi]
sub eax, 0x19
cmp eax, 2
ja 0x4046ed
mov dword [esp + 0x50], 1
lea edx, [esp + 0x84]
mov eax, dword [esp + 0x4c]
mov eax, dword [eax + 4]
mov dword [esp + 0x4c], eax
test eax, eax
je 0x403671
cmp dword [esp + 0x50], 4
je case.0x4032e4.45
mov eax, dword [ebx + 0x14]
mov dword [edx], eax
mov dword [esp + 8], edx
mov dword [ebx + 0x14], edx
mov edi, dword [esp + 0x4c]
mov dword [edx + 4], edi
mov dword [edx + 8], 0
mov dword [edx + 0xc], ecx
inc dword [esp + 0x50]
add edx, 0x10
mov eax, dword [edi]
sub eax, 0x19
cmp eax, 2
jbe 0x403629
mov edx, dword [esp + 0x4c]
cmp dword [edx], 4
je 0x404610
mov ecx, dword [esp + 0x4c]
cmp dword [ecx], 2
jne 0x40370b
mov esi, dword [ecx + 8]
mov dword [esp + 0x54], esi
mov eax, dword [esi]
sub eax, 0x19
cmp eax, 2
ja 0x40370b
cmp dword [esp + 0x50], 3
ja case.0x4032e4.45
mov eax, dword [esp + 0x50]
shl eax, 4
lea edx, [esp + eax + 0x74]
lea ecx, [esp + eax + 0x64]
jmp 0x4036ca
add edx, 0x10
mov ecx, dword [esp + 8]
cmp dword [esp + 0x50], 4
je case.0x4032e4.45
lea eax, [edx - 0x10]
cld
mov edi, edx
mov esi, eax
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov dword [edx], ecx
add ecx, 0x10
mov dword [esp + 8], ecx
mov dword [ebx + 0x14], ecx
mov edi, dword [esp + 0x54]
mov dword [edx - 0xc], edi
mov dword [edx - 8], 0
mov eax, dword [ebx + 0x10]
mov dword [edx - 4], eax
inc dword [esp + 0x50]
mov eax, dword [edi + 4]
mov dword [esp + 0x54], eax
mov eax, dword [eax]
sub eax, 0x19
cmp eax, 2
jbe 0x4036b8
mov edx, dword [ebp + 8]
mov eax, ebx
call fcn.004032ac
mov esi, dword [esp + 0x4c]
cmp dword [esi], 4
je 0x40466a
mov eax, dword [esp + 0x50]
test eax, eax
je 0x404542
mov eax, dword [esp + 0x50]
shl eax, 4
lea edi, [esp + 0xcc]
add eax, edi
lea edi, [eax - 0x54]
lea esi, [eax - 0x50]
jmp 0x403763
mov byte [edx + eax], 0x20
inc eax
mov dword [ebx + 8], eax
mov edx, dword [edi]
mov eax, ebx
call fcn.00404a6c
mov ecx, dword [esp + 0x50]
test ecx, ecx
je 0x404542
dec dword [esp + 0x50]
sub esi, 0x10
sub edi, 0x10
mov ebp, dword [esi]
test ebp, ebp
jne 0x403757
mov edx, dword [ebx + 4]
test edx, edx
je 0x403782
mov eax, dword [ebx + 8]
cmp eax, dword [ebx + 0xc]
jb 0x403746
mov edx, 0x20
mov eax, ebx
call fcn.0040326c
jmp 0x40374e
mov edx, dword [eax + 8]
lea eax, [edx + 0x18]
cmp eax, dword [ebx + 0xc]
ja 0x404172
lea edi, [esi + edx]
mov eax, str.reference_temporary_for
cld
mov ecx, 6
mov esi, eax
rep movsd dword es:[edi], dword [esi]
add dword [ebx + 8], 0x18
jmp case.0x4032e4.34
mov edx, dword [eax + 8]
lea eax, [edx + 0xf]
cmp eax, dword [ebx + 0xc]
ja 0x404188
lea edi, [esi + edx]
mov eax, str.java_Class_for
cld
mov esi, eax
movsd dword es:[edi], dword [esi]
mov dword [esp + 0x24], esi
movsd dword es:[edi], dword [esi]
mov dword [esp + 0x24], esi
movsd dword es:[edi], dword [esi]
mov dword [esp + 0x24], esi
movsw word es:[edi], word [esi]
mov dword [esp + 0x24], esi
movsb byte es:[edi], byte [esi]
add dword [ebx + 8], 0xf
jmp case.0x4032e4.34
test byte [eax], 4
jne 0x4041ca
mov edi, dword [eax + 8]
mov edx, dword [ebp + 4]
mov ecx, dword [edx + 4]
lea eax, [edi + ecx]
cmp eax, dword [ebx + 0xc]
ja 0x4044cd
lea eax, [esi + edi]
push edi
push ecx
push dword [edx]
push eax
call sub.msvcrt.dll_memcpy
mov eax, dword [ebp + 4]
mov eax, dword [eax + 4]
add dword [ebx + 8], eax
add esp, 0x10
jmp case.0x404656.0
mov edx, dword [eax + 8]
lea eax, [edx + 9]
cmp eax, dword [ebx + 0xc]
ja 0x4041b4
lea edi, [esi + edx]
mov eax, str.operator
cld
mov esi, eax
movsd dword es:[edi], dword [esi]
mov dword [esp + 0x10], esi
movsd dword es:[edi], dword [esi]
mov dword [esp + 0x10], esi
movsb byte es:[edi], byte [esi]
add dword [ebx + 8], 9
jmp case.0x4032e4.6
mov edx, dword [eax + 8]
lea eax, [edx + 8]
cmp eax, dword [ebx + 0xc]
ja 0x4042a6
lea eax, [esi + edx]
mov dword [eax], 0x7265706f
mov dword [eax + 4], 0x726f7461
add dword [ebx + 8], 8
mov edx, dword [ebp + 4]
mov eax, dword [edx + 4]
mov al, byte [eax]
sub eax, 0x61
cmp al, 0x19
ja 0x4038b1
mov edx, dword [ebx + 4]
test edx, edx
je 0x404445
mov eax, dword [ebx + 8]
cmp eax, dword [ebx + 0xc]
jae 0x404445
mov byte [edx + eax], 0x20
inc eax
mov dword [ebx + 8], eax
mov edx, dword [ebp + 4]
mov edi, dword [ebx + 4]
test edi, edi
je 0x4038ca
mov ecx, dword [ebx + 8]
mov esi, dword [edx + 8]
lea eax, [ecx + esi]
cmp eax, dword [ebx + 0xc]
jbe 0x40446a
mov ecx, dword [edx + 8]
mov edx, dword [edx + 4]
mov eax, ebx
call fcn.00403224
jmp case.0x404656.0
mov edx, dword [eax + 8]
lea eax, [edx + 0xd]
cmp eax, dword [ebx + 0xc]
ja 0x40424e
lea edi, [esi + edx]
mov eax, str.typeinfo_for
cld
mov esi, eax
movsd dword es:[edi], dword [esi]
mov dword [esp + 0x3c], esi
movsd dword es:[edi], dword [esi]
mov dword [esp + 0x3c], esi
movsd dword es:[edi], dword [esi]
mov dword [esp + 0x3c], esi
movsb byte es:[edi], byte [esi]
add dword [ebx + 8], 0xd
jmp case.0x4032e4.34
mov eax, dword [eax + 8]
cmp eax, dword [ebx + 0xc]
jae 0x404367
mov byte [esi + eax], 0x7e
inc eax
mov dword [ebx + 8], eax
jmp case.0x4032e4.6
mov esi, dword [eax + 0x10]
test esi, esi
je case.0x4032e4.45
mov edx, dword [ebp + 4]
mov eax, dword [esi + 4]
mov eax, dword [eax + 8]
test eax, eax
je 0x403965
cmp dword [eax], 0x27
jne case.0x4032e4.45
test edx, edx
jg 0x40395d
jmp 0x403965
cmp dword [eax], 0x27
jne case.0x4032e4.45
test edx, edx
je 0x40396d
dec edx
mov eax, dword [eax + 8]
test eax, eax
jne 0x403950
test edx, edx
jne case.0x4032e4.45
test eax, eax
je case.0x4032e4.45
mov ecx, dword [esi]
mov dword [ebx + 0x10], ecx
mov edx, dword [eax + 4]
mov eax, ebx
call fcn.004032ac
mov dword [ebx + 0x10], esi
jmp case.0x404656.0
mov eax, dword [ebp + 4]
test eax, eax
je 0x403a05
mov eax, dword [ebx + 0x14]
mov dword [esp + 0xb4], eax
lea edi, [esp + 0xb4]
mov dword [ebx + 0x14], edi
mov dword [esp + 0xb8], ebp
mov dword [esp + 0xbc], 0
mov eax, dword [ebx + 0x10]
mov dword [esp + 0xc0], eax
mov edx, dword [ebp + 4]
mov eax, ebx
call fcn.004032ac
mov eax, dword [esp + 0xb4]
mov dword [ebx + 0x14], eax
mov eax, dword [esp + 0xbc]
test eax, eax
jne case.0x404656.0
mov edx, dword [ebx + 4]
test edx, edx
je 0x404356
mov eax, dword [ebx + 8]
cmp eax, dword [ebx + 0xc]
jae 0x404356
mov byte [edx + eax], 0x20
inc eax
mov dword [ebx + 8], eax
mov ecx, dword [ebx + 0x14]
mov edx, ebp
mov eax, ebx
call fcn.00404f24
jmp case.0x404656.0
mov edx, dword [eax + 8]
lea eax, [edx + 0x1a]
cmp eax, dword [ebx + 0xc]
ja 0x4042e8
lea edi, [esi + edx]
mov eax, str.covariant_return_thunk_to
cld
mov ecx, 6
mov esi, eax
rep movsd dword es:[edi], dword [esi]
mov dword [esp + 0x28], esi
movsw word es:[edi], word [esi]
add dword [ebx + 8], 0x1a
jmp case.0x4032e4.34
mov eax, dword [ebp + 4]
cmp dword [eax], 0x21
je 0x404389
xor edi, edi
mov eax, dword [ebx + 8]
cmp eax, dword [ebx + 0xc]
jae 0x404378
mov byte [esi + eax], 0x28
inc eax
mov dword [ebx + 8], eax
mov edx, dword [ebp + 4]
mov eax, ebx
call fcn.004032ac
mov edx, dword [ebx + 4]
test edx, edx
je 0x40414b
mov eax, dword [ebx + 8]
cmp eax, dword [ebx + 0xc]
jae 0x40414b
mov byte [edx + eax], 0x29
inc eax
mov dword [ebx + 8], eax
cmp dword [ebp], 0x32
je 0x404400
cmp edi, 8
jne case.0x4032e4.6
mov edx, dword [ebx + 4]
test edx, edx
je 0x4044bc
mov eax, dword [ebx + 8]
cmp eax, dword [ebx + 0xc]
jae 0x4044bc
mov byte [edx + eax], 0x5b
inc eax
mov dword [ebx + 8], eax
mov edx, dword [ebp + 8]
mov eax, ebx
call fcn.004032ac
mov edx, dword [ebx + 4]
test edx, edx
je 0x4044ab
mov eax, dword [ebx + 8]
cmp eax, dword [ebx + 0xc]
jae 0x4044ab
mov byte [edx + eax], 0x5d
inc eax
mov dword [ebx + 8], eax
jmp case.0x404656.0
mov eax, dword [eax + 0x14]
mov dword [esp + 8], eax
mov edx, dword [esp + 8]
mov dword [esp + 0xb4], edx
lea ecx, [esp + 0xb4]
mov dword [ebx + 0x14], ecx
mov dword [esp + 0xb8], ebp
mov dword [esp + 0xbc], 0
mov eax, dword [ebx + 0x10]
mov dword [esp + 0xc0], eax
mov edx, dword [ebp + 4]
mov eax, ebx
call fcn.004032ac
mov eax, dword [esp + 0xbc]
test eax, eax
je 0x40413d
mov esi, dword [esp + 0xb4]
mov dword [ebx + 0x14], esi
jmp case.0x404656.0
mov eax, dword [eax + 0x14]
mov dword [esp + 0xb4], eax
lea eax, [esp + 0xb4]
mov dword [ebx + 0x14], eax
mov dword [esp + 0xb8], ebp
mov dword [esp + 0xbc], 0
mov eax, dword [ebx + 0x10]
mov dword [esp + 0xc0], eax
mov edx, dword [ebp + 8]
mov eax, ebx
call fcn.004032ac
mov edi, dword [esp + 0xbc]
test edi, edi
jne 0x403be6
mov edx, dword [ebx + 4]
test edx, edx
je 0x404489
mov eax, dword [ebx + 8]
cmp eax, dword [ebx + 0xc]
jae 0x404489
mov byte [edx + eax], 0x20
inc eax
mov dword [ebx + 8], eax
mov edx, dword [ebp + 4]
mov eax, ebx
call fcn.004032ac
mov ecx, dword [ebx + 4]
test ecx, ecx
je 0x403bd5
mov edx, dword [ebx + 8]
lea eax, [edx + 3]
cmp eax, dword [ebx + 0xc]
jbe 0x404595
mov ecx, 3
mov edx, 0x40e6a6
mov eax, ebx
call fcn.00403224
mov eax, dword [esp + 0xb4]
mov dword [ebx + 0x14], eax
jmp case.0x404656.0
mov edx, dword [eax + 8]
lea eax, [edx + 0x13]
cmp eax, dword [ebx + 0xc]
ja 0x4041fe
lea edi, [esi + edx]
mov eax, str.guard_variable_for
cld
mov esi, eax
movsd dword es:[edi], dword [esi]
mov dword [esp + 0x20], esi
movsd dword es:[edi], dword [esi]
mov dword [esp + 0x20], esi
movsd dword es:[edi], dword [esi]
mov dword [esp + 0x20], esi
movsd dword es:[edi], dword [esi]
mov dword [esp + 0x20], esi
movsw word es:[edi], word [esi]
mov dword [esp + 0x20], esi
movsb byte es:[edi], byte [esi]
add dword [ebx + 8], 0x13
jmp case.0x4032e4.34
mov edx, dword [ebp + 4]
cmp dword [edx], 0x2a
je 0x404314
call fcn.004049fc
mov edx, dword [ebx + 4]
test edx, edx
je 0x40412c
mov eax, dword [ebx + 8]
cmp eax, dword [ebx + 0xc]
jae 0x40412c
mov byte [edx + eax], 0x28
inc eax
mov dword [ebx + 8], eax
mov edx, dword [ebp + 8]
jmp 0x403499
mov edx, dword [eax + 8]
lea eax, [edx + 0x12]
cmp eax, dword [ebx + 0xc]
ja 0x4042d2
lea edi, [esi + edx]
mov eax, str.typeinfo_name_for
cld
mov esi, eax
movsd dword es:[edi], dword [esi]
mov dword [esp + 0x38], esi
movsd dword es:[edi], dword [esi]
mov dword [esp + 0x38], esi
movsd dword es:[edi], dword [esi]
mov dword [esp + 0x38], esi
movsd dword es:[edi], dword [esi]
mov dword [esp + 0x38], esi
movsw word es:[edi], word [esi]
add dword [ebx + 8], 0x12
jmp case.0x4032e4.34
mov edx, dword [ebp + 4]
call fcn.004032ac
test byte [ebx], 4
jne 0x404214
mov ecx, dword [ebx + 4]
test ecx, ecx
je 0x403ccb
mov edx, dword [ebx + 8]
lea eax, [edx + 2]
cmp eax, dword [ebx + 0xc]
jbe 0x404586
mov ecx, 2
mov edx, 0x40e5ac
mov eax, ebx
call fcn.00403224
jmp case.0x4032e4.6
mov edx, dword [eax + 0x14]
mov dword [esp + 0x58], edx
mov dword [esp + 0x74], edx
lea ecx, [esp + 0x74]
mov dword [esp + 8], ecx
mov dword [eax + 0x14], ecx
mov dword [esp + 0x78], ebp
mov dword [esp + 0x7c], 0
mov eax, dword [eax + 0x10]
mov dword [esp + 0x80], eax
test edx, edx
je 0x40465d
mov eax, dword [edx + 4]
mov eax, dword [eax]
sub eax, 0x16
cmp eax, 2
ja 0x40465d
mov dword [esp + 4], edx
mov dword [esp + 0x5c], 1
mov edx, 0x10
jmp 0x403d49
mov eax, dword [esi + 4]
mov eax, dword [eax]
sub eax, 0x16
cmp eax, 2
ja 0x403da6
mov esi, dword [esp + 4]
mov eax, dword [esi + 8]
test eax, eax
jne 0x403d98
cmp dword [esp + 0x5c], 3
ja case.0x4032e4.45
lea edi, [esp + 0xcc]
lea eax, [edx + edi]
lea edi, [eax - 0x58]
cld
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
movsd dword es:[edi], dword [esi]
mov dword [esp + 0x14], esi
movsd dword es:[edi], dword [esi]
mov esi, dword [esp + 8]
mov dword [eax - 0x58], esi
lea edi, [ecx + edx]
mov dword [esp + 8], edi
mov dword [ebx + 0x14], edi
mov eax, dword [esp + 4]
mov dword [eax + 8], 1
inc dword [esp + 0x5c]
add edx, 0x10
mov esi, dword [esp + 4]
mov esi, dword [esi]
mov dword [esp + 4], esi
test esi, esi
jne 0x403d3c
mov edx, dword [ebp + 8]
mov eax, ebx
call fcn.004032ac
mov edi, dword [esp + 0x58]
mov dword [ebx + 0x14], edi
mov eax, dword [esp + 0x7c]
test eax, eax
jne case.0x404656.0
cmp dword [esp + 0x5c], 1
jbe 0x403dec
mov eax, dword [esp + 0x5c]
shl eax, 4
lea esi, [esp + eax + 0x78]
dec dword [esp + 0x5c]
sub esi, 0x10
mov edx, dword [esi]
mov eax, ebx
call fcn.00404a6c
cmp dword [esp + 0x5c], 1
jne 0x403dd5
mov ecx, dword [ebx + 0x14]
mov edx, ebp
mov eax, ebx
call fcn.00404df4
jmp case.0x404656.0
mov edi, dword [eax + 0x14]
mov dword [esp + 8], edi
mov edx, edi
test edi, edi
jne 0x403e1a
jmp 0x403af8
mov edx, dword [edx]
test edx, edx
je 0x403af8
mov eax, dword [edx + 8]
test eax, eax
jne 0x403e10
mov eax, dword [edx + 4]
mov esi, dword [eax]
lea eax, [esi - 0x16]
cmp eax, 2
ja 0x403af8
cmp ecx, esi
jne 0x403e10
jmp case.0x4032e4.34
mov edx, dword [ebp + 4]
call fcn.004032ac
mov esi, dword [ebp + 8]
test esi, esi
je case.0x404656.0
mov ecx, dword [ebx + 4]
test ecx, ecx
je 0x403e64
mov edx, dword [ebx + 8]
lea eax, [edx + 2]
cmp eax, dword [ebx + 0xc]
jbe 0x4044ea
mov ecx, 2
mov edx, 0x40e6aa
mov eax, ebx
call fcn.00403224
jmp case.0x4032e4.6
mov esi, dword [eax + 0x14]
mov dword [eax + 0x14], 0
mov edx, dword [ebp + 4]
call fcn.004032ac
mov edx, dword [ebx + 4]
test edx, edx
je 0x40411b
mov eax, dword [ebx + 8]
test eax, eax
je 0x403ea9
cmp byte [edx + eax - 1], 0x3c
je 0x4045c8
cmp eax, dword [ebx + 0xc]
jae 0x40411b
mov byte [edx + eax], 0x3c
inc eax
mov dword [ebx + 8], eax
mov edx, dword [ebp + 8]
mov eax, ebx
call fcn.004032ac
mov edx, dword [ebx + 4]
test edx, edx
je 0x40410a
mov eax, dword [ebx + 8]
test eax, eax
je 0x403ee1
cmp byte [edx + eax - 1], 0x3e
je 0x4045ec
cmp eax, dword [ebx + 0xc]
jae 0x40410a
mov byte [edx + eax], 0x3e
inc eax
mov dword [ebx + 8], eax
jmp 0x403b49
mov eax, dword [ebp + 8]
cmp dword [eax], 0x2d
jne case.0x4032e4.45
mov eax, dword [ebp + 4]
cmp dword [eax], 0x28
je 0x4044f9
mov eax, dword [ebx + 8]
cmp eax, dword [ebx + 0xc]
jae 0x404531
mov byte [edx + eax], 0x28
inc eax
mov dword [ebx + 8], eax
mov eax, dword [ebp + 8]
mov edx, dword [eax + 4]
mov eax, ebx
call fcn.004032ac
mov ecx, dword [ebx + 4]
test ecx, ecx
je 0x403f46
mov edx, dword [ebx + 8]
lea eax, [edx + 2]
cmp eax, dword [ebx + 0xc]
jbe 0x4045aa
mov ecx, 2
mov edx, 0x40e6c0
mov eax, ebx
call fcn.00403224
mov edx, dword [ebp + 4]
mov eax, ebx
call fcn.004049fc
mov ecx, dword [ebx + 4]
test ecx, ecx
je 0x403f77
mov edx, dword [ebx + 8]
lea eax, [edx + 2]
cmp eax, dword [ebx + 0xc]
jbe 0x4045b9
mov ecx, 2
mov edx, 0x40e6c3
mov eax, ebx
call fcn.00403224
mov eax, dword [ebp + 8]
mov edx, dword [eax + 8]
mov eax, ebx
call fcn.004032ac
mov edx, dword [ebx + 4]
test edx, edx
je 0x404424
mov eax, dword [ebx + 8]
cmp eax, dword [ebx + 0xc]
jae 0x404424
mov byte [edx + eax], 0x29
inc eax
mov dword [ebx + 8], eax
mov eax, dword [ebp + 4]
cmp dword [eax], 0x28
jne case.0x404656.0
mov eax, dword [eax + 4]
cmp dword [eax + 8], 1
jne case.0x404656.0
mov eax, dword [eax + 4]
cmp byte [eax], 0x3e
jne case.0x404656.0
jmp 0x4034a0
mov edx, dword [eax + 8]
lea eax, [edx + 9]
cmp eax, dword [ebx + 0xc]
ja 0x4042fe
lea edi, [esi + edx]
mov eax, str.operator
cld
mov esi, eax
movsd dword es:[edi], dword [esi]
mov dword [esp + 0xc], esi
movsd dword es:[edi], dword [esi]
mov dword [esp + 0xc], esi
movsb byte es:[edi], byte [esi]
add dword [ebx + 8], 9
mov edx, ebp
mov eax, ebx
call fcn.004048e4
jmp case.0x404656.0
mov edx, dword [eax + 8]
lea eax, [edx + 0xb]
cmp eax, dword [ebx + 0xc]
ja 0x404264
lea edi, [esi + edx]
mov eax, str.vtable_for
cld
mov esi, eax
movsd dword es:[edi], dword [esi]
mov dword [esp + 0x44], esi
movsd dword es:[edi], dword [esi]
mov dword [esp + 0x44], esi
movsw word es:[edi], word [esi]
mov dword [esp + 0x44], esi
movsb byte es:[edi], byte [esi]
add dword [ebx + 8], 0xb
jmp case.0x4032e4.34
mov edx, dword [eax + 8]
lea eax, [edx + 8]
cmp eax, dword [ebx + 0xc]
ja 0x40427a
lea eax, [esi + edx]
mov dword [eax], 0x20545456
mov dword [eax + 4], 0x20726f66
add dword [ebx + 8], 8
jmp case.0x4032e4.34
mov edx, dword [ebp + 4]
mov eax, ebx
call fcn.00403224
jmp case.0x404656.0
lea edi, [ecx + 1]
cmp byte [ecx + 1], 0x5f
jne 0x403515
cmp byte [ecx + 2], 0x55
jne 0x403515
lea eax, [ecx + 3]
mov dword [esp + 0x68], eax
cmp dword [esp + 0x64], eax
jbe 0x403515
mov dword [esp + 0x60], 0
jmp 0x4040d9
movsx eax, dl
lea ebp, [eax - 0x30]
inc dword [esp + 0x68]
mov edx, dword [esp + 0x68]
cmp dword [esp + 0x64], edx
jbe 0x403515
mov eax, dword [esp + 0x60]
shl eax, 4
add eax, ebp
mov dword [esp + 0x60], eax
mov eax, dword [esp + 0x68]
mov dl, byte [eax]
lea eax, [edx - 0x30]
cmp al, 9
jbe 0x4040b4
lea eax, [edx - 0x41]
cmp al, 5
ja 0x40454e
movsx eax, dl
lea ebp, [eax - 0x37]
jmp 0x4040ba
mov edx, 0x29
mov eax, ebx
call fcn.0040326c
jmp case.0x404656.0
mov edx, 0x3e
mov eax, ebx
call fcn.0040326c
jmp 0x403b49
mov edx, 0x3c
mov eax, ebx
call fcn.0040326c
jmp 0x403eba
mov edx, 0x28
mov eax, ebx
call fcn.0040326c
jmp 0x403c63
mov edx, ebp
mov eax, ebx
call fcn.00404a6c
jmp 0x403b42
mov edx, 0x29
mov eax, ebx
call fcn.0040326c
jmp 0x403a91
mov ecx, 0x15
mov edx, str.non_virtual_thunk_to
mov eax, ebx
call fcn.00403224
jmp case.0x4032e4.34
mov ecx, 0x18
mov edx, str.reference_temporary_for
mov eax, ebx
call fcn.00403224
jmp case.0x4032e4.34
mov ecx, 0xf
mov edx, str.java_Class_for
mov eax, ebx
call fcn.00403224
jmp case.0x4032e4.34
mov ecx, 0x11
mov edx, str.virtual_thunk_to
mov eax, ebx
call fcn.00403224
jmp case.0x4032e4.34
mov ecx, 9
mov edx, str.operator
mov eax, ebx
call fcn.00403224
jmp case.0x4032e4.6
mov edi, dword [eax + 8]
mov edx, dword [ebp + 4]
mov ecx, dword [edx + 0xc]
lea eax, [edi + ecx]
cmp eax, dword [ebx + 0xc]
ja 0x4044db
lea eax, [esi + edi]
push esi
push ecx
push dword [edx + 8]
push eax
call sub.msvcrt.dll_memcpy
mov eax, dword [ebp + 4]
mov eax, dword [eax + 0xc]
add dword [ebx + 8], eax
add esp, 0x10
jmp case.0x404656.0
mov ecx, 0x13
mov edx, str.guard_variable_for
mov eax, ebx
call fcn.00403224
jmp case.0x4032e4.34
mov edx, dword [ebx + 4]
test edx, edx
je 0x404459
mov eax, dword [ebx + 8]
cmp eax, dword [ebx + 0xc]
jae 0x404459
mov byte [edx + eax], 0x2e
inc eax
mov dword [ebx + 8], eax
jmp case.0x4032e4.6
mov ecx, 0x11
mov edx, str.hidden_alias_for
mov eax, ebx
call fcn.00403224
jmp case.0x4032e4.34
mov ecx, 0xd
mov edx, str.typeinfo_for
mov eax, ebx
call fcn.00403224
jmp case.0x4032e4.34
mov ecx, 0xb
mov edx, str.vtable_for
mov eax, ebx
call fcn.00403224
jmp case.0x4032e4.34
mov ecx, 8
mov edx, str.VTT_for
mov eax, ebx
call fcn.00403224
jmp case.0x4032e4.34
mov ecx, 0x18
mov edx, str.construction_vtable_for
mov eax, ebx
call fcn.00403224
jmp 0x40335a
mov ecx, 8
mov edx, 0x40e6ad
mov eax, ebx
call fcn.00403224
jmp 0x403880
mov ecx, 0x10
mov edx, str.typeinfo_fn_for
mov eax, ebx
call fcn.00403224
jmp case.0x4032e4.34
mov ecx, 0x12
mov edx, str.typeinfo_name_for
mov eax, ebx
call fcn.00403224
jmp case.0x4032e4.34
mov ecx, 0x1a
mov edx, str.covariant_return_thunk_to
mov eax, ebx
call fcn.00403224
jmp case.0x4032e4.34
mov ecx, 9
mov edx, str.operator
mov eax, ebx
call fcn.00403224
jmp 0x404009
mov eax, dword [eax + 8]
cmp eax, dword [ebx + 0xc]
jae 0x404575
mov byte [esi + eax], 0x28
inc eax
mov dword [ebx + 8], eax
mov edx, dword [ebp + 4]
mov eax, ebx
call fcn.004048e4
mov edx, dword [ebx + 4]
test edx, edx
je 0x40449a
mov eax, dword [ebx + 8]
cmp eax, dword [ebx + 0xc]
jae 0x40449a
mov byte [edx + eax], 0x29
inc eax
mov dword [ebx + 8], eax
jmp 0x403c44
mov edx, 0x20
mov eax, ebx
call fcn.0040326c
jmp 0x403a05
mov edx, 0x7e
mov eax, ebx
call fcn.0040326c
jmp case.0x4032e4.6
mov edx, 0x28
mov eax, ebx
call fcn.0040326c
jmp 0x403a68
mov eax, dword [eax + 4]
mov edi, dword [eax + 0x10]
cmp edi, 1
jb 0x403a54
cmp edi, 6
jbe 0x404630
cmp edi, 7
jne 0x403a54
mov eax, dword [ebp + 8]
mov edx, dword [eax]
test edx, edx
jne 0x403a54
cmp dword [eax + 8], 1
jne 0x403a54
cmp ecx, 0x31
jne 0x403a54
mov eax, dword [eax + 4]
mov al, byte [eax]
cmp al, 0x30
je 0x404754
cmp al, 0x31
jne 0x403a54
mov edx, dword [ebx + 8]
lea eax, [edx + 4]
cmp eax, dword [ebx + 0xc]
ja 0x4047f9
mov dword [esi + edx], 0x65757274
add dword [ebx + 8], 4
jmp case.0x404656.0
mov edx, dword [ebx + 4]
test edx, edx
je 0x404564
mov eax, dword [ebx + 8]
cmp eax, dword [ebx + 0xc]
jae 0x404564
mov byte [edx + eax], 0x2d
inc eax
mov dword [ebx + 8], eax
jmp 0x403a9b
mov edx, 0x29
mov eax, ebx
call fcn.0040326c
jmp 0x403fb4
mov dword [ecx + edx], 0x2d6e692d
add dword [ebx + 8], 4
jmp case.0x4032e4.6
mov edx, 0x20
mov eax, ebx
call fcn.0040326c
mov edx, dword [ebp + 4]
jmp 0x4038b1
mov edx, 0x2e
mov eax, ebx
call fcn.0040326c
jmp case.0x4032e4.6
lea eax, [edi + ecx]
push ecx
push esi
push dword [edx + 4]
push eax
call sub.msvcrt.dll_memcpy
mov eax, dword [ebp + 4]
mov eax, dword [eax + 8]
add dword [ebx + 8], eax
add esp, 0x10
jmp case.0x404656.0
mov edx, 0x20
mov eax, ebx
call fcn.0040326c
jmp 0x403bb5
mov edx, 0x29
mov eax, ebx
call fcn.0040326c
jmp 0x403c44
mov edx, 0x5d
mov eax, ebx
call fcn.0040326c
jmp case.0x404656.0
mov edx, 0x5b
mov eax, ebx
call fcn.0040326c
jmp 0x403ac3
mov edx, dword [edx]
mov eax, ebx
call fcn.00403224
jmp case.0x404656.0
mov edx, dword [edx + 8]
mov eax, ebx
call fcn.00403224
jmp case.0x404656.0
mov word [ecx + edx], 0x202c
add dword [ebx + 8], 2
jmp case.0x4032e4.6
mov eax, dword [eax + 4]
cmp dword [eax + 8], 1
jne 0x403f0f
mov eax, dword [eax + 4]
cmp byte [eax], 0x3e
jne 0x403f0f
mov eax, dword [ebx + 8]
cmp eax, dword [ebx + 0xc]
jae 0x40480f
mov byte [esi + eax], 0x28
inc eax
mov dword [ebx + 8], eax
mov edx, dword [ebx + 4]
test edx, edx
jne 0x403f0f
mov edx, 0x28
mov eax, ebx
call fcn.0040326c
jmp 0x403f23
mov eax, dword [esp + 0x48]
mov dword [ebx + 0x14], eax
jmp case.0x404656.0
lea eax, [edx - 0x61]
cmp al, 5
ja 0x4046fa
movsx eax, dl
lea ebp, [eax - 0x57]
jmp 0x4040ba
mov edx, 0x2d
mov eax, ebx
call fcn.0040326c
jmp 0x403a9b
mov edx, 0x28
mov eax, ebx
call fcn.0040326c
jmp 0x404328
mov word [ecx + edx], 0x3a3a
add dword [ebx + 8], 2
jmp case.0x4032e4.6
lea eax, [ecx + edx]
mov word [eax], 0x3a3a
mov byte [eax + 2], 0x2a
add dword [ebx + 8], 3
jmp 0x403be6
mov word [ecx + edx], 0x2029
add dword [ebx + 8], 2
jmp 0x403f57
mov word [ecx + edx], 0x2820
add dword [ebx + 8], 2
jmp 0x403f88
cmp eax, dword [ebx + 0xc]
jae 0x4046dc
mov byte [edx + eax], 0x20
inc eax
mov dword [ebx + 8], eax
mov edx, dword [ebx + 4]
test edx, edx
je 0x40411b
mov eax, dword [ebx + 8]
jmp 0x403ea9
cmp eax, dword [ebx + 0xc]
jae 0x4046b5
mov byte [edx + eax], 0x20
inc eax
mov dword [ebx + 8], eax
mov edx, dword [ebx + 4]
test edx, edx
je 0x40410a
mov eax, dword [ebx + 8]
jmp 0x403ee1
mov eax, dword [ebx + 0x10]
mov dword [esp + 0xc4], eax
lea ecx, [esp + 0xc4]
mov dword [ebx + 0x10], ecx
mov dword [esp + 0xc8], edx
jmp 0x40367e
mov edx, dword [ebp + 8]
mov eax, dword [edx]
test eax, eax
jne 0x403a54
cmp ecx, 0x32
je 0x40473c
mov eax, ebx
call fcn.004032ac
cmp edi, 6
ja case.0x404656.0
jmp dword [edi*4 + 0x40e7b0]
mov dword [esp + 0x5c], 1
jmp 0x403da6
mov ecx, dword [esp + 0xc4]
mov dword [ebx + 0x10], ecx
jmp 0x403722
mov edx, 0x28
mov eax, ebx
call fcn.0040326c
jmp 0x4033f4
mov word [ecx + edx], 0x2820
add dword [ebx + 8], 2
jmp 0x403459
mov dword [esp + 0x50], 0
jmp 0x403671
mov word [ecx + edx], 0x2029
add dword [ebx + 8], 2
jmp 0x403428
mov edx, 0x20
mov eax, ebx
call fcn.0040326c
jmp 0x4045fd
lea eax, [ecx + edx]
mov dword [eax], 0x203a2029
mov byte [eax + 4], 0x28
add dword [ebx + 8], 5
jmp 0x403490
mov edx, 0x20
mov eax, ebx
call fcn.0040326c
jmp 0x4045d9
mov dword [esp + 0x50], 1
jmp 0x403671
cmp dl, 0x5f
jne 0x403515
cmp dword [esp + 0x60], 0xff
ja 0x403515
test esi, esi
je 0x40489c
mov eax, dword [ebx + 8]
cmp eax, dword [ebx + 0xc]
jae 0x40489c
mov cl, byte [esp + 0x60]
mov byte [esi + eax], cl
inc eax
mov dword [ebx + 8], eax
mov ecx, dword [esp + 0x68]
inc ecx
jmp 0x4034f1
mov eax, dword [ebx + 8]
cmp eax, dword [ebx + 0xc]
jae 0x404775
mov byte [esi + eax], 0x2d
inc eax
mov dword [ebx + 8], eax
mov edx, dword [ebp + 8]
jmp 0x404646
mov edx, dword [ebx + 8]
lea eax, [edx + 5]
cmp eax, dword [ebx + 0xc]
ja 0x404789
lea eax, [esi + edx]
mov dword [eax], 0x736c6166
mov byte [eax + 4], 0x65
add dword [ebx + 8], 5
jmp case.0x404656.0
mov edx, 0x2d
mov eax, ebx
call fcn.0040326c
mov edx, dword [ebp + 8]
jmp 0x404646
mov ecx, 5
mov edx, str.false
mov eax, ebx
call fcn.00403224
jmp case.0x404656.0
mov edx, dword [ebx + 4]
test edx, edx
je 0x4047d7
mov eax, dword [ebx + 8]
cmp eax, dword [ebx + 0xc]
jae 0x4047d7
mov byte [edx + eax], 0x75
inc eax
mov dword [ebx + 8], eax
jmp case.0x404656.0
mov edx, dword [ebx + 4]
test edx, edx
je 0x4047e8
mov eax, dword [ebx + 8]
cmp eax, dword [ebx + 0xc]
jae 0x4047e8
mov byte [edx + eax], 0x6c
inc eax
mov dword [ebx + 8], eax
jmp case.0x404656.0
mov edx, 0x75
mov eax, ebx
call fcn.0040326c
jmp case.0x404656.0
mov edx, 0x6c
mov eax, ebx
call fcn.0040326c
jmp case.0x404656.0
mov ecx, 4
mov edx, str.true
mov eax, ebx
call fcn.00403224
jmp case.0x404656.0
mov edx, 0x28
mov eax, ebx
call fcn.0040326c
jmp 0x404526
mov ecx, dword [ebx + 4]
test ecx, ecx
je 0x404836
mov edx, dword [ebx + 8]
lea eax, [edx + 2]
cmp eax, dword [ebx + 0xc]
jbe 0x4048c6
mov ecx, 2
mov edx, 0x40e6cc
mov eax, ebx
call fcn.00403224
jmp case.0x404656.0
mov ecx, dword [ebx + 4]
test ecx, ecx
je 0x40485e
mov edx, dword [ebx + 8]
lea eax, [edx + 3]
cmp eax, dword [ebx + 0xc]
jbe 0x4048b1
mov ecx, 3
mov edx, 0x40e6d2
mov eax, ebx
call fcn.00403224
jmp case.0x404656.0
mov ecx, dword [ebx + 4]
test ecx, ecx
je 0x404886
mov edx, dword [ebx + 8]
lea eax, [edx + 2]
cmp eax, dword [ebx + 0xc]
jbe 0x4048d5
mov ecx, 2
mov edx, 0x40e6cf
mov eax, ebx
call fcn.00403224
jmp case.0x404656.0
mov edx, dword [esp + 0x60]
mov eax, ebx
call fcn.0040326c
mov ecx, dword [esp + 0x68]
inc ecx
jmp 0x4034f1
lea eax, [ecx + edx]
mov word [eax], 0x6c75
mov byte [eax + 2], 0x6c
add dword [ebx + 8], 3
jmp case.0x404656.0
mov word [ecx + edx], 0x6c75
add dword [ebx + 8], 2
jmp case.0x404656.0
mov word [ecx + edx], 0x6c6c
add dword [ebx + 8], 2
jmp case.0x404656.0