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

Disassembly:
push ebp
push edi
push esi
mov esi, ecx
push ebx
sub esp, 0x1fc
mov ebp, dword [esi + 0x1c]
mov edi, dword [esi + 0x18]
mov eax, dword [esp + 0x210]
mov ebx, dword [esi + 0xc]
mov dword [esp + 0x18], ecx
mov edx, dword [esi + 0x14]
mov dword [esp + 0x14], ebp
mov dword [esp + 0x4c], eax
mov eax, dword [ecx + 4]
mov ecx, dword [ecx + 8]
mov dword [esp + 0x68], ebp
lea ebp, [esi + 0x20]
mov dword [esp + 0x50], eax
mov eax, dword [esi + 0x10]
mov dword [esp + 0x40], 0
mov dword [esp + 0x44], 0
mov dword [esp + 0x48], 0
mov dword [esp + 0x54], ecx
mov dword [esp + 0x58], ebx
mov dword [esp + 0x5c], eax
mov dword [esp + 0x60], edx
mov dword [esp + 0x10], edi
mov dword [esp + 0x64], edi
mov dword [esp + 0x6c], 0
cmp ecx, ebp
je 0x413c38
test eax, eax
je 0x410a04
mov eax, dword [eax + 0xa8]
xor edx, edx
div ebx
lea eax, [esp + 0x5c]
mov dword [ecx + edx*4], eax
mov ecx, dword [esp + 0x18]
mov edi, dword [ecx + 0x28]
mov eax, dword [ecx + 0x24]
mov dword [ecx + 0x1c], 0
mov dword [ecx + 0xc], 1
mov dword [ecx + 0x20], 0
mov dword [ecx + 8], ebp
mov dword [ecx + 0x10], 0
mov dword [ecx + 0x14], 0
mov dword [esp + 0x24], edi
cmp edi, eax
je 0x413aa8
lea esi, [esp + 0xf8]
lea ebx, [eax + 0x40]
add eax, 0x7c
mov dword [esp + 0x38], ebp
mov dword [esp + 0x20], esi
mov ebp, eax
lea esi, cs:[esi]
nop
mov eax, dword [esp + 0x18]
lea edi, [ebp - 0x7c]
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x10], edi
mov eax, dword [eax]
mov edx, dword [eax]
mov dword [esp + 4], edi
mov dword [esp], eax
call dword [edx + 8]
sub esp, 8
cmp byte [esp + 0xf8], 0
je 0x410cd0
mov eax, dword [esp + 0x18]
lea esi, [esp + 0xfc]
lea ecx, [esp + 0x70]
mov eax, dword [eax]
mov edx, dword [eax]
mov dword [esp + 4], esi
mov dword [esp], eax
call dword [edx + 0xc]
sub esp, 8
cmp byte [esp + 0x70], 0
je 0x410e58
cmp byte [ebx - 4], 0
jne 0x411070
mov dword [esp], esi
lea eax, [esp + 0x50]
mov ecx, eax
mov dword [esp + 0x1c], eax
call fcn.0040d630
sub esp, 4
lea edx, [eax + 0x28]
test eax, eax
je 0x412f20
mov edi, dword [ebx + 0x50]
mov eax, dword [esp + 0x44]
cmp dword [esp + 0x48], eax
je 0x412f00
mov ecx, dword [esp + 0x10]
mov dword [eax + 4], edx
add eax, 0x10
mov dword [eax - 8], 0
mov dword [eax - 0x10], ecx
mov dword [eax - 4], edi
cmp byte [ebx - 4], 0
mov dword [esp + 0x44], eax
je 0x4110d0
lea ecx, [ebp - 0x64]
cmp ecx, esi
je 0x410b4f
mov eax, dword [ebx - 0x28]
lea edx, [ebp - 0x5c]
mov esi, dword [esp + 0x100]
cmp eax, edx
je 0x413508
mov edi, dword [ebx - 0x20]
cmp edi, esi
jb 0x413000
test esi, esi
jne 0x413042
mov dword [ebx - 0x24], esi
mov byte [eax + esi], 0
lea edx, [esp + 0x114]
lea eax, [ebp - 0x4c]
cmp edx, eax
je 0x410bfc
mov eax, dword [esp + 0x118]
mov edi, dword [esp + 0x114]
mov edx, dword [ebx - 8]
mov esi, eax
mov dword [esp + 0x10], eax
mov eax, dword [ebx - 0x10]
sub esi, edi
sub edx, eax
cmp edx, esi
jb 0x413518
mov edx, dword [ebx - 0xc]
mov dword [esp + 0x1c], edx
sub edx, eax
cmp edx, esi
jae 0x4132a0
cmp edx, 4
jle 0x4140dd
mov dword [esp + 8], edx
mov dword [esp + 4], edi
mov dword [esp], eax
call sub.msvcrt.dll_memmove
mov eax, dword [esp + 0x118]
mov edx, dword [ebx - 0xc]
mov edi, dword [esp + 0x114]
mov dword [esp + 0x10], eax
mov eax, dword [ebx - 0x10]
mov dword [esp + 0x1c], edx
sub edx, eax
mov ecx, dword [esp + 0x10]
add edx, edi
sub ecx, edx
cmp ecx, 4
jle 0x4140ec
mov eax, dword [esp + 0x1c]
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call sub.msvcrt.dll_memmove
mov eax, dword [ebx - 0x10]
add eax, esi
mov dword [ebx - 0xc], eax
cmp byte [ebx + 0x4c], 0
jne 0x41118d
cmp byte [esp + 0x70], 0
mov eax, dword [esp + 0x74]
jne 0x4110b0
lea edx, [esp + 0x7c]
cmp eax, edx
je 0x410c30
mov edi, dword [esp + 0x7c]
mov dword [esp], eax
lea edx, [edi + 1]
mov dword [esp + 4], edx
call fcn.0054fb40
cmp byte [esp + 0xf8], 0
mov eax, dword [esp + 0x114]
jne 0x410cb0
lea edi, [esp + 0x11c]
cmp eax, edi
je 0x410c68
mov esi, dword [esp + 0x11c]
mov dword [esp], eax
lea edx, [esi + 1]
mov dword [esp + 4], edx
call fcn.0054fb40
lea esi, [esi]
mov edx, dword [esp + 0xfc]
lea eax, [esp + 0x104]
cmp edx, eax
je 0x410c90
mov eax, dword [esp + 0x104]
mov dword [esp], edx
add eax, 1
mov dword [esp + 4], eax
call fcn.0054fb40
add ebx, 0x94
lea edx, [ebp + 0x94]
lea eax, [ebp + 0x18]
cmp dword [esp + 0x24], eax
je 0x411250
mov ebp, edx
jmp 0x410a60
test eax, eax
je 0x410c68
mov edx, dword [esp + 0x11c]
mov dword [esp], eax
sub edx, eax
mov dword [esp + 4], edx
call fcn.0054fb40
jmp 0x410c68
mov esi, dword [esp + 0x100]
lea eax, [esp + 0x98]
mov edi, dword [esp + 0xfc]
mov dword [esp + 0x90], eax
cmp esi, 0xf
ja 0x411208
cmp esi, 1
jne 0x4111f0
movzx eax, byte [edi]
mov byte [esp + 0x98], al
lea eax, [esp + 0x98]
mov dword [esp + 0x94], esi
mov byte [eax + esi], 0
mov esi, dword [esp + 0x118]
lea eax, [esp + 0xb0]
mov dword [esp + 0xa8], eax
mov edi, dword [esp + 0x114]
cmp esi, 0xf
ja 0x4118c0
cmp esi, 1
je 0x411908
test esi, esi
jne 0x413c68
lea eax, [esp + 0xb0]
mov dword [esp + 0xac], esi
mov byte [eax + esi], 0
mov eax, dword [esp + 0x12c]
lea esi, [esp + 0x90]
mov dword [esp + 0xc0], eax
movzx eax, byte [ebx + 0x4c]
mov byte [esp + 0x30], al
test al, al
jne 0x411b70
mov dword [esp], esi
mov ecx, ebx
call fcn.00406c00
mov byte [ebx + 0x4c], 1
sub esp, 4
mov esi, dword [ebx + 0x50]
mov eax, dword [esp + 0x44]
cmp eax, dword [esp + 0x48]
je 0x411e5e
mov edi, dword [esp + 0x10]
mov dword [eax + 4], 0
add eax, 0x10
mov dword [eax - 8], ebx
mov dword [eax - 0x10], edi
mov dword [eax - 4], esi
mov dword [esp + 0x44], eax
mov edx, dword [esp + 0xa8]
lea eax, [esp + 0xb0]
cmp edx, eax
je 0x410dec
mov eax, dword [esp + 0xb0]
mov dword [esp], edx
add eax, 1
mov dword [esp + 4], eax
call fcn.0054fb40
mov edx, dword [esp + 0x90]
lea eax, [esp + 0x98]
cmp edx, eax
je 0x410e14
mov eax, dword [esp + 0x98]
mov dword [esp], edx
add eax, 1
mov dword [esp + 4], eax
call fcn.0054fb40
cmp byte [esp + 0xf8], 0
mov eax, dword [esp + 0x114]
jne 0x410cb0
lea edi, [esp + 0x11c]
cmp eax, edi
je 0x410c68
mov edi, dword [esp + 0x11c]
mov dword [esp], eax
lea edx, [edi + 1]
mov dword [esp + 4], edx
call fcn.0054fb40
jmp 0x410c68
lea eax, [esp + 0x74]
lea edi, [esp + 0x1a0]
mov dword [esp], eax
mov ecx, edi
call fcn.004717b0
sub esp, 4
mov eax, dword [esp + 0x8c]
mov edx, dword [esp + 0x78]
lea ecx, [esp + 0x1bc]
mov dword [esp + 0x34], ecx
mov dword [esp + 0x1b8], eax
lea eax, [esp + 0x1c4]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x1bc], eax
mov eax, dword [esp + 0x74]
add edx, eax
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.00485910
sub esp, 8
lea eax, [esp + 0x1dc]
mov byte [esp + 0x1dc], 0
cmp byte [ebx + 0x4c], 0
mov dword [esp + 0x28], eax
mov dword [esp + 0x1d4], eax
mov dword [esp + 0x1d8], 0
jne 0x412d80
lea eax, [ebp - 0x34]
lea edi, [esp + 0x1a8]
mov edx, dword [esp + 0x1a4]
mov dword [ebx], eax
mov ecx, dword [esp + 0x1a0]
mov dword [esp + 0x2c], edi
cmp ecx, edi
je 0x413b18
mov dword [ebx], ecx
mov eax, dword [esp + 0x1a8]
mov dword [ebx + 8], eax
mov eax, dword [esp + 0x2c]
mov esi, dword [esp + 0x1c]
mov dword [ebx + 4], edx
mov dword [esp + 0x1a4], 0
mov dword [esp + 0x1a0], eax
mov eax, dword [esp + 0x1b8]
mov byte [esp + 0x1a8], 0
mov dword [ebx + 0x18], eax
lea eax, [ebp - 0x18]
mov edx, dword [esp + 0x1c0]
mov dword [ebx + 0x1c], eax
mov ecx, dword [esp + 0x1bc]
cmp ecx, esi
je 0x4132f0
mov dword [ebx + 0x1c], ecx
mov eax, dword [esp + 0x1c4]
mov dword [ebx + 0x24], eax
mov eax, dword [esp + 0x1c]
mov dword [ebx + 0x20], edx
mov byte [esp + 0x1c4], 0
mov dword [esp + 0x1bc], eax
mov eax, dword [esp + 0x28]
mov dword [esp + 0x1c0], 0
mov dword [ebx + 0x34], ebp
mov byte [ebx + 0x3c], 0
mov dword [ebx + 0x38], 0
mov dword [esp + 0x1d4], eax
mov eax, dword [esp + 0x44]
mov byte [ebx + 0x4c], 1
mov esi, dword [ebx + 0x50]
cmp eax, dword [esp + 0x48]
je 0x412ee5
mov edi, dword [esp + 0x10]
mov dword [eax + 0xc], esi
add eax, 0x10
mov dword [eax - 0xc], 0
mov edx, dword [esp + 0x1d4]
mov dword [eax - 0x10], edi
mov dword [eax - 8], ebx
mov dword [esp + 0x44], eax
mov eax, dword [esp + 0x28]
cmp edx, eax
je 0x410ffc
mov eax, dword [esp + 0x1dc]
mov dword [esp], edx
add eax, 1
mov dword [esp + 4], eax
call fcn.0054fb40
mov edx, dword [esp + 0x1bc]
mov eax, dword [esp + 0x1c]
cmp edx, eax
je 0x411021
mov eax, dword [esp + 0x1c4]
mov dword [esp], edx
add eax, 1
mov dword [esp + 4], eax
call fcn.0054fb40
mov edx, dword [esp + 0x1a0]
mov eax, dword [esp + 0x2c]
cmp edx, eax
je 0x411046
mov eax, dword [esp + 0x1a8]
mov dword [esp], edx
add eax, 1
mov dword [esp + 4], eax
call fcn.0054fb40
cmp byte [esp + 0x70], 0
mov eax, dword [esp + 0x74]
je 0x412818
cmp eax, 0x5ec0c0
je 0x410e14
mov dword [esp], eax
call fcn.004a0a88
jmp 0x410e14
mov ecx, dword [ebx - 0x28]
mov eax, dword [esp + 0x100]
mov edx, dword [esp + 0xfc]
cmp dword [ebx - 0x24], eax
jne 0x410ac3
test eax, eax
je 0x4110a6
mov dword [esp + 8], eax
mov dword [esp + 4], ecx
mov dword [esp], edx
call sub.msvcrt.dll_memcmp
test eax, eax
jne 0x410ac3
cmp byte [ebx + 0x4c], 0
jne 0x410ac3
mov eax, dword [esp + 0x74]
cmp eax, 0x5ec0c0
je 0x410c30
mov dword [esp], eax
call fcn.004a0a88
jmp 0x410c30
lea eax, [ebp - 0x5c]
mov edx, dword [esp + 0x100]
lea ecx, [ebp - 0x64]
mov dword [ebx - 0x28], eax
mov eax, dword [esp + 0xfc]
add edx, eax
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.00485910
sub esp, 8
mov esi, dword [esp + 0x118]
sub esi, dword [esp + 0x114]
mov dword [ebx - 0x10], 0
mov dword [ebx - 0xc], 0
mov dword [ebx - 8], 0
je 0x4123f0
cmp esi, 0x7ffffffc
ja 0x412780
mov dword [esp], esi
call fcn.0054fb80
mov edx, dword [esp + 0x118]
mov edi, eax
mov eax, dword [esp + 0x114]
movd xmm0, edi
add esi, edi
punpckldq xmm0, xmm0
sub edx, eax
mov dword [ebx - 8], esi
movq qword [ebx - 0x10], xmm0
cmp edx, 4
jle 0x4140ce
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov dword [esp], edi
mov dword [esp + 0x10], edx
call sub.msvcrt.dll_memmove
mov edx, dword [esp + 0x10]
add edi, edx
cmp byte [ebx + 0x4c], 0
mov byte [ebx - 4], 1
mov dword [ebx - 0xc], edi
je 0x410c06
mov edx, dword [ebx + 0x34]
mov byte [ebx + 0x4c], 0
cmp edx, ebp
je 0x4111aa
mov eax, dword [ebx + 0x3c]
mov dword [esp], edx
add eax, 1
mov dword [esp + 4], eax
call fcn.0054fb40
mov edx, dword [ebx + 0x1c]
lea eax, [ebp - 0x18]
cmp edx, eax
je 0x4111c6
mov eax, dword [ebx + 0x24]
mov dword [esp], edx
add eax, 1
mov dword [esp + 4], eax
call fcn.0054fb40
mov edx, dword [ebx]
lea eax, [ebp - 0x34]
cmp edx, eax
je 0x410c06
mov eax, dword [ebx + 8]
mov dword [esp], edx
add eax, 1
mov dword [esp + 4], eax
call fcn.0054fb40
jmp 0x410c06
test esi, esi
je 0x410d08
lea eax, [esp + 0x98]
jmp 0x411231
test esi, esi
js 0x4144e6
mov eax, esi
add eax, 1
js 0x412790
mov dword [esp], eax
call fcn.0054fb80
mov dword [esp + 0x98], esi
mov dword [esp + 0x90], eax
mov dword [esp + 8], esi
mov dword [esp + 4], edi
mov dword [esp], eax
call sub.msvcrt.dll_memcpy
mov eax, dword [esp + 0x90]
jmp 0x410d0f
mov ebx, dword [esp + 0x18]
mov ebp, dword [esp + 0x38]
mov eax, dword [ebx + 0x34]
mov ebx, dword [ebx + 0x38]
mov dword [esp + 0x1c], ebx
cmp eax, ebx
je 0x411e74
mov dword [esp + 0x34], ebp
lea esi, [eax + 0x40]
lea ebx, [eax + 0x7c]
lea esi, [esi]
lea eax, [ebx - 0x7c]
mov ecx, dword [esi - 0x40]
mov dword [esp + 0x10], eax
mov eax, dword [esp + 0x18]
mov edx, dword [eax]
lea eax, [esp + 0x168]
call fcn.004859b0
cmp byte [esp + 0x168], 0
je 0x411588
lea eax, [esp + 0x16c]
lea ecx, [esp + 0x130]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x18]
mov dword [esp], eax
call fcn.0040d750
sub esp, 8
cmp byte [esp + 0x130], 0
je 0x411920
movzx eax, byte [esp + 0x158]
cmp al, byte [esi - 4]
je 0x4118a8
test al, al
jne 0x411462
xor edi, edi
mov ebp, dword [esi + 0x50]
mov eax, dword [esp + 0x44]
cmp dword [esp + 0x48], eax
je 0x411570
mov ecx, dword [esp + 0x10]
mov dword [eax + 4], edi
add eax, 0x10
mov dword [eax - 8], 0
mov dword [eax - 0x10], ecx
mov dword [eax - 4], ebp
cmp byte [esi - 4], 0
mov dword [esp + 0x44], eax
movzx eax, byte [esp + 0x158]
je 0x411820
test al, al
jne 0x413070
mov eax, dword [esi - 0x10]
mov byte [esi - 4], 0
test eax, eax
je 0x41134e
mov edx, dword [esi - 8]
mov dword [esp], eax
sub edx, eax
mov dword [esp + 4], edx
call fcn.0054fb40
mov edx, dword [esi - 0x28]
lea eax, [ebx - 0x5c]
cmp edx, eax
je 0x411828
mov eax, dword [esi - 0x20]
mov dword [esp], edx
add eax, 1
mov dword [esp + 4], eax
call fcn.0054fb40
cmp byte [esi + 0x4c], 0
je 0x411832
lea esi, cs:[esi]
mov edx, dword [esi + 0x34]
mov byte [esi + 0x4c], 0
cmp edx, ebx
je 0x41139d
mov eax, dword [esi + 0x3c]
mov dword [esp], edx
add eax, 1
mov dword [esp + 4], eax
call fcn.0054fb40
mov edx, dword [esi + 0x1c]
lea eax, [ebx - 0x18]
cmp edx, eax
je 0x4113b9
mov eax, dword [esi + 0x24]
mov dword [esp], edx
add eax, 1
mov dword [esp + 4], eax
call fcn.0054fb40
mov edx, dword [esi]
lea eax, [ebx - 0x34]
cmp edx, eax
je 0x411832
mov eax, dword [esi + 8]
mov dword [esp], edx
add eax, 1
mov dword [esp + 4], eax
call fcn.0054fb40
cmp byte [esp + 0x130], 0
je 0x411840
lea esi, cs:[esi]
nop
mov eax, dword [esp + 0x160]
cmp eax, 0x5ec0c0
je 0x411406
mov dword [esp], eax
call fcn.004a0a88
cmp byte [esp + 0x158], 0
je 0x411868
mov eax, dword [esp + 0x14c]
mov byte [esp + 0x158], 0
test eax, eax
je 0x411840
mov edx, dword [esp + 0x154]
mov dword [esp], eax
sub edx, eax
mov dword [esp + 4], edx
call fcn.0054fb40
jmp 0x411840
mov ecx, dword [esi - 0x28]
mov eax, dword [esp + 0x138]
mov edx, dword [esp + 0x134]
cmp dword [esi - 0x24], eax
je 0x413330
lea ebp, [esp + 0x134]
lea eax, [esp + 0x50]
mov dword [esp], ebp
mov ecx, eax
mov dword [esp + 0x20], eax
call fcn.0040d630
sub esp, 4
lea edi, [eax + 0x28]
test eax, eax
jne 0x4112ec
lea eax, [esp + 0x1a0]
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x1a0], ebp
mov dword [esp], eax
call fcn.0047f8e0
mov ebp, eax
sub esp, 4
lea eax, [eax + 4]
mov dword [ebp + 0xa4], eax
lea edx, [esp + 0x160]
lea eax, [ebp + 0x90]
lea edi, [ebp + 0x28]
cmp edx, eax
je 0x41151a
mov eax, dword [ebp + 0x90]
mov edx, dword [esp + 0x164]
mov ecx, dword [esp + 0x160]
cmp eax, 0x5ec0c0
je 0x4114f8
mov dword [esp], eax
mov dword [esp + 0x24], ecx
mov dword [esp + 0x20], edx
call fcn.004a0a88
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x20]
mov dword [ebp + 0x90], ecx
mov dword [ebp + 0x94], edx
mov dword [esp + 0x160], 0x5ec0c0
mov dword [esp + 0x164], 0
lea ecx, [ebp + 0x38]
add ebp, 0x98
mov dword [esp + 0x20], ecx
call fcn.00410820
mov eax, dword [ebp - 8]
mov edx, dword [ebp - 4]
mov dword [ebp + 4], 0
mov dword [ebp + 8], 0
mov ecx, dword [esp + 0x20]
mov dword [esp + 8], ebp
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.0040e4d0
mov ebp, dword [esi + 0x50]
sub esp, 0xc
mov eax, dword [esp + 0x44]
cmp dword [esp + 0x48], eax
jne 0x4112fd
lea esi, cs:[esi]
lea ecx, [esp + 0x40]
call fcn.0047f620
mov eax, dword [esp + 0x44]
jmp 0x4112fd
mov edi, dword [esp + 0x170]
lea eax, [esp + 0xcc]
mov ebp, dword [esp + 0x16c]
mov dword [esp + 0xc4], eax
cmp edi, 0xf
ja 0x412400
cmp edi, 1
je 0x412448
test edi, edi
jne 0x413cae
lea eax, [esp + 0xcc]
mov dword [esp + 0xc8], edi
mov byte [eax + edi], 0
mov edi, dword [esp + 0x188]
lea eax, [esp + 0xe4]
mov dword [esp + 0xdc], eax
mov ebp, dword [esp + 0x184]
cmp edi, 0xf
ja 0x412460
cmp edi, 1
je 0x4124a8
test edi, edi
jne 0x413dde
lea eax, [esp + 0xe4]
mov dword [esp + 0xe0], edi
lea ebp, [esp + 0xc4]
mov byte [eax + edi], 0
mov eax, dword [esp + 0x19c]
movzx edi, byte [esi + 0x4c]
mov dword [esp + 0xf4], eax
mov eax, edi
test al, al
jne 0x412950
mov dword [esp], ebp
mov ecx, esi
call fcn.00433540
sub esp, 4
mov eax, dword [esp + 0xf4]
lea edi, [esp + 0xcc]
mov dword [esi + 0x18], eax
lea eax, [ebx - 0x18]
mov dword [esi + 0x1c], eax
mov edx, dword [esp + 0xc4]
cmp edx, edi
je 0x4138e8
mov eax, dword [esp + 0xcc]
mov dword [esi + 0x1c], edx
mov edx, dword [esp + 0xc8]
mov dword [esi + 0x24], eax
lea eax, [esp + 0xcc]
mov dword [esi + 0x20], edx
lea edi, [esp + 0xe4]
mov dword [esp + 0xc4], eax
mov eax, dword [esp + 0xe0]
mov dword [esp + 0xc8], 0
mov byte [esp + 0xcc], 0
mov dword [esi + 0x34], ebx
mov edx, dword [esp + 0xdc]
cmp edx, edi
je 0x4138a8
mov dword [esi + 0x34], edx
mov edx, dword [esp + 0xe4]
mov dword [esi + 0x3c], edx
mov dword [esi + 0x38], eax
lea eax, [esp + 0xe4]
mov dword [esp + 0xdc], eax
mov dword [esp + 0xe0], 0
mov byte [esp + 0xe4], 0
mov byte [esi + 0x4c], 1
mov edi, dword [esi + 0x50]
mov eax, dword [esp + 0x44]
cmp dword [esp + 0x48], eax
je 0x412d20
mov ecx, dword [esp + 0x10]
mov dword [eax + 4], 0
add eax, 0x10
mov dword [eax - 8], esi
mov dword [eax - 0x10], ecx
mov dword [eax - 4], edi
mov dword [esp + 0x44], eax
mov edx, dword [esp + 0xdc]
lea eax, [esp + 0xe4]
cmp edx, eax
je 0x41174f
mov eax, dword [esp + 0xe4]
mov dword [esp], edx
add eax, 1
mov dword [esp + 4], eax
call fcn.0054fb40
mov edx, dword [esp + 0xc4]
lea eax, [esp + 0xcc]
cmp edx, eax
je 0x411777
mov eax, dword [esp + 0xcc]
mov dword [esp], edx
add eax, 1
mov dword [esp + 4], eax
call fcn.0054fb40
cmp byte [esp + 0x168], 0
mov eax, dword [esp + 0x184]
jne 0x411800
lea edi, [esp + 0x18c]
cmp eax, edi
je 0x4117b0
mov edi, dword [esp + 0x18c]
mov dword [esp], eax
lea edx, [edi + 1]
mov dword [esp + 4], edx
call fcn.0054fb40
lea esi, [esi]
mov edx, dword [esp + 0x16c]
lea eax, [esp + 0x174]
cmp edx, eax
je 0x4117d8
mov eax, dword [esp + 0x174]
mov dword [esp], edx
add eax, 1
mov dword [esp + 4], eax
call fcn.0054fb40
lea eax, [ebx + 0x94]
add esi, 0x94
add ebx, 0x18
cmp dword [esp + 0x1c], ebx
je 0x411e70
mov ebx, eax
jmp 0x411278
test eax, eax
je 0x4117b0
mov edx, dword [esp + 0x18c]
mov dword [esp], eax
sub edx, eax
mov dword [esp + 4], edx
call fcn.0054fb40
jmp 0x4117b0
test al, al
jne 0x411ab8
cmp byte [esi + 0x4c], 0
jne 0x411380
cmp byte [esp + 0x130], 0
jne 0x4113f0
mov edx, dword [esp + 0x134]
lea eax, [esp + 0x13c]
cmp edx, eax
je 0x411868
mov eax, dword [esp + 0x13c]
mov dword [esp], edx
add eax, 1
mov dword [esp + 4], eax
call fcn.0054fb40
cmp byte [esp + 0x168], 0
mov eax, dword [esp + 0x184]
jne 0x411800
lea edi, [esp + 0x18c]
cmp eax, edi
je 0x4117b0
mov ecx, dword [esp + 0x18c]
mov dword [esp], eax
lea edx, [ecx + 1]
mov dword [esp + 4], edx
call fcn.0054fb40
jmp 0x4117b0
test al, al
jne 0x411448
cmp byte [esi + 0x4c], 0
jne 0x4112ea
jmp 0x4113f0
test esi, esi
js 0x4144e6
mov eax, esi
add eax, 1
js 0x412790
mov dword [esp], eax
call fcn.0054fb80
mov dword [esp + 0xb0], esi
mov dword [esp + 0xa8], eax
mov dword [esp + 8], esi
mov dword [esp + 4], edi
mov dword [esp], eax
call sub.msvcrt.dll_memcpy
mov eax, dword [esp + 0xa8]
jmp 0x410d57
movzx eax, byte [edi]
mov byte [esp + 0xb0], al
jmp 0x410d50
mov eax, dword [esp + 0x134]
mov edx, dword [esp + 0x138]
lea edi, [esp + 0xf8]
lea ebp, [esp + 0x100]
mov ecx, edi
mov dword [esp + 0xf8], ebp
add edx, eax
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.00485910
sub esp, 8
cmp byte [esi + 0x4c], 0
mov eax, dword [esp + 0x14c]
mov dword [esp + 0x110], eax
jne 0x412538
mov dword [esp], edi
mov ecx, esi
call fcn.004717b0
sub esp, 4
mov eax, dword [esp + 0x110]
mov dword [esi + 0x18], eax
lea eax, [ebx - 0x18]
mov dword [esi + 0x1c], eax
mov edx, dword [esp + 0xf8]
cmp edx, ebp
je 0x414050
mov dword [esi + 0x1c], edx
mov eax, dword [esp + 0x100]
mov dword [esi + 0x24], eax
mov edx, dword [esp + 0xfc]
mov dword [esi + 0x20], edx
mov dword [esp + 0xf8], ebp
mov dword [esp + 0xfc], 0
mov byte [esp + 0x100], 0
mov dword [esi + 0x34], ebx
mov dword [esi + 0x38], 0
mov byte [esi + 0x3c], 0
mov byte [esi + 0x4c], 1
mov edi, dword [esi + 0x50]
mov eax, dword [esp + 0x44]
cmp dword [esp + 0x48], eax
je 0x413c50
mov ecx, dword [esp + 0x10]
mov dword [eax + 4], 0
add eax, 0x10
mov dword [eax - 8], esi
mov dword [eax - 0x10], ecx
mov dword [eax - 4], edi
mov dword [esp + 0x44], eax
mov edx, dword [esp + 0xf8]
cmp edx, ebp
je 0x411a2a
mov eax, dword [esp + 0x100]
mov dword [esp], edx
add eax, 1
mov dword [esp + 4], eax
call fcn.0054fb40
cmp byte [esp + 0x130], 0
je 0x411a80
mov eax, dword [esp + 0x160]
cmp eax, 0x5ec0c0
je 0x411a4a
mov dword [esp], eax
call fcn.004a0a88
cmp byte [esp + 0x158], 0
je 0x411777
mov eax, dword [esp + 0x14c]
mov byte [esp + 0x158], 0
test eax, eax
je 0x411a80
mov edx, dword [esp + 0x154]
mov dword [esp], eax
sub edx, eax
mov dword [esp + 4], edx
call fcn.0054fb40
mov edx, dword [esp + 0x134]
lea eax, [esp + 0x13c]
cmp edx, eax
je 0x411777
mov eax, dword [esp + 0x13c]
mov dword [esp], edx
add eax, 1
mov dword [esp + 4], eax
call fcn.0054fb40
jmp 0x411777
lea eax, [ebx - 0x5c]
mov edx, dword [esp + 0x138]
lea ecx, [ebx - 0x64]
mov dword [esi - 0x28], eax
mov eax, dword [esp + 0x134]
add edx, eax
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.00485910
sub esp, 8
mov ebp, dword [esp + 0x150]
sub ebp, dword [esp + 0x14c]
mov dword [esi - 0x10], 0
mov dword [esi - 0xc], 0
mov dword [esi - 8], 0
je 0x412528
cmp ebp, 0x7ffffffc
ja 0x413c74
mov dword [esp], ebp
call fcn.0054fb80
mov edx, dword [esp + 0x150]
mov edi, eax
mov eax, dword [esp + 0x14c]
movd xmm0, edi
add ebp, edi
punpckldq xmm0, xmm0
sub edx, eax
mov dword [esi - 8], ebp
movq qword [esi - 0x10], xmm0
cmp edx, 4
jle 0x414286
mov dword [esp + 8], edx
mov dword [esp + 4], eax
mov dword [esp], edi
mov dword [esp + 0x10], edx
call sub.msvcrt.dll_memmove
mov edx, dword [esp + 0x10]
add edi, edx
mov byte [esi - 4], 1
mov dword [esi - 0xc], edi
jmp 0x411828
mov dword [esp], esi
lea edi, [esp + 0x1a0]
mov ecx, edi
call fcn.00433540
sub esp, 4
mov eax, dword [esp + 0xc0]
mov edx, dword [esp + 0x94]
lea ecx, [esp + 0x1bc]
mov dword [esp + 0x34], ecx
mov dword [esp + 0x1b8], eax
lea eax, [esp + 0x1c4]
mov dword [esp + 0x1c], eax
mov dword [esp + 0x1bc], eax
mov eax, dword [esp + 0x90]
add edx, eax
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.00485910
sub esp, 8
lea eax, [esp + 0x1dc]
mov edx, dword [esp + 0xac]
lea ecx, [esp + 0x1d4]
mov dword [esp + 0x28], eax
mov dword [esp + 0x1d4], eax
mov eax, dword [esp + 0xa8]
mov dword [esp + 0x3c], ecx
add edx, eax
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.00485910
mov eax, dword [ebx + 0x18]
sub esp, 8
cmp dword [esp + 0x1b8], eax
je 0x4124c0
mov edx, dword [esp + 0x1d4]
mov eax, dword [esp + 0x28]
cmp edx, eax
je 0x411c3f
mov eax, dword [esp + 0x1dc]
mov dword [esp], edx
add eax, 1
mov dword [esp + 4], eax
call fcn.0054fb40
mov edx, dword [esp + 0x1bc]
mov eax, dword [esp + 0x1c]
cmp edx, eax
je 0x411c64
mov eax, dword [esp + 0x1c4]
mov dword [esp], edx
add eax, 1
mov dword [esp + 4], eax
call fcn.0054fb40
mov edx, dword [esp + 0x1a0]
lea eax, [esp + 0x1a8]
mov dword [esp + 0x2c], eax
cmp edx, eax
je 0x411c90
mov eax, dword [esp + 0x1a8]
mov dword [esp], edx
add eax, 1
mov dword [esp + 4], eax
call fcn.0054fb40
cmp byte [esp + 0x30], 0
je 0x410dc4
cmp byte [ebx + 0x4c], 0
je 0x410d87
mov dword [esp], esi
mov ecx, edi
call fcn.00406c00
mov eax, dword [ebx]
lea ecx, [ebp - 0x34]
sub esp, 4
cmp eax, ecx
mov esi, dword [esp + 0x2c]
mov ecx, dword [esp + 0x1a0]
mov edx, eax
je 0x413430
cmp ecx, esi
je 0x413708
mov esi, dword [esp + 0x1a4]
mov edi, dword [esp + 0x1a8]
mov dword [ebx], ecx
mov edx, dword [ebx + 8]
mov dword [ebx + 4], esi
mov dword [ebx + 8], edi
test eax, eax
je 0x413448
mov dword [esp + 0x1a0], eax
mov dword [esp + 0x1a8], edx
mov dword [esp + 0x1a4], 0
lea ecx, [ebp - 0x18]
mov byte [eax], 0
mov eax, dword [esp + 0x1b8]
mov dword [ebx + 0x18], eax
mov eax, dword [ebx + 0x1c]
cmp eax, ecx
mov edx, eax
mov ecx, dword [esp + 0x1bc]
je 0x413498
mov edi, dword [esp + 0x1c]
cmp ecx, edi
je 0x4136a0
mov esi, dword [esp + 0x1c0]
mov edi, dword [esp + 0x1c4]
mov dword [ebx + 0x1c], ecx
mov edx, dword [ebx + 0x24]
mov dword [ebx + 0x20], esi
mov dword [ebx + 0x24], edi
test eax, eax
je 0x4134b5
mov dword [esp + 0x1bc], eax
mov dword [esp + 0x1c4], edx
mov dword [esp + 0x1c0], 0
mov byte [eax], 0
mov eax, dword [ebx + 0x34]
mov ecx, dword [esp + 0x1d4]
mov edx, eax
cmp eax, ebp
je 0x413460
mov edi, dword [esp + 0x28]
cmp ecx, edi
je 0x413630
mov esi, dword [esp + 0x1d8]
mov edi, dword [esp + 0x1dc]
mov dword [ebx + 0x34], ecx
mov edx, dword [ebx + 0x3c]
mov dword [ebx + 0x38], esi
mov dword [ebx + 0x3c], edi
test eax, eax
je 0x41347d
mov dword [esp + 0x1d4], eax
mov dword [esp + 0x1dc], edx
mov dword [esp + 0x1d8], 0
mov byte [eax], 0
mov eax, dword [esp + 0x28]
mov edx, dword [esp + 0x1d4]
cmp edx, eax
je 0x411dff
mov eax, dword [esp + 0x1dc]
mov dword [esp], edx
add eax, 1
mov dword [esp + 4], eax
call fcn.0054fb40
mov edx, dword [esp + 0x1bc]
mov eax, dword [esp + 0x1c]
cmp edx, eax
je 0x411e24
mov eax, dword [esp + 0x1c4]
mov dword [esp], edx
add eax, 1
mov dword [esp + 4], eax
call fcn.0054fb40
mov edx, dword [esp + 0x1a0]
mov eax, dword [esp + 0x2c]
cmp edx, eax
je 0x410d98
mov eax, dword [esp + 0x1a8]
mov dword [esp], edx
add eax, 1
mov dword [esp + 4], eax
call fcn.0054fb40
mov esi, dword [ebx + 0x50]
mov eax, dword [esp + 0x44]
cmp eax, dword [esp + 0x48]
jne 0x410da9
lea ecx, [esp + 0x40]
call fcn.0047f620
mov eax, dword [esp + 0x44]
jmp 0x410da9
mov ebp, dword [esp + 0x34]
mov eax, dword [esp + 0x18]
mov ebx, dword [eax + 0x10]
lea esi, [eax + 4]
test ebx, ebx
je 0x4140a0
lea esi, cs:[esi]
nop
mov eax, ebx
mov ebx, dword [ebx]
mov ecx, esi
mov dword [esp], eax
call fcn.0040e290
sub esp, 4
test ebx, ebx
jne 0x411e90
mov ebx, dword [esp + 0x18]
mov eax, dword [ebx + 0xc]
mov edx, dword [ebx + 8]
cmp ebp, edx
je 0x411ed4
mov ebx, dword [esp + 0x18]
shl eax, 2
mov ecx, dword [ebx + 4]
mov ebx, dword [ecx]
mov dword [esp + 8], 4
mov dword [esp + 4], eax
mov dword [esp], edx
call dword [ebx + 0xc]
sub esp, 0xc
mov ebx, dword [esp + 0x18]
mov eax, dword [esp + 0x64]
mov edx, dword [esp + 0x68]
mov ecx, dword [esp + 0x54]
mov dword [ebx + 0x18], eax
lea eax, [esp + 0x6c]
mov dword [ebx + 0x1c], edx
cmp ecx, eax
je 0x413e0d
mov edi, dword [esp + 0x18]
mov edx, dword [esp + 0x60]
mov ebx, dword [esp + 0x58]
mov eax, dword [esp + 0x5c]
mov dword [edi + 0x14], edx
mov edx, dword [esp + 0x50]
mov dword [edi + 8], ecx
mov dword [edi + 0xc], ebx
mov dword [edi + 0x10], eax
mov dword [edi + 4], edx
test eax, eax
je 0x4134d0
mov eax, dword [eax + 0xa8]
xor edx, edx
lea ebp, [esp + 0x1a0]
div ebx
lea eax, [edi + 0x10]
lea ebx, [esp + 0x6c]
mov dword [ecx + edx*4], eax
mov eax, dword [edi + 0x10]
mov dword [esp + 0x68], 0
mov dword [esp + 0x10], eax
mov dword [esp + 0x58], 1
mov dword [esp + 0x6c], 0
mov dword [esp + 0x54], ebx
mov dword [esp + 0x5c], 0
mov dword [esp + 0x60], 0
test eax, eax
je 0x4134f0
mov dword [esp + 0x1c], ebp
mov ebx, edi
lea esi, [esi]
mov eax, dword [ebx]
mov ecx, dword [esp + 0x10]
mov esi, dword [eax]
add ecx, 4
mov dword [esp], eax
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x1c]
call dword [esi + 0xc]
sub esp, 8
cmp byte [esp + 0x1a0], 0
je 0x4127e8
mov eax, dword [esp + 0x10]
mov esi, dword [esp + 0x1a4]
mov edi, dword [esp + 0x1a8]
mov ecx, dword [eax + 0x90]
lea ebp, [eax + 0x90]
cmp dword [eax + 0x94], edi
je 0x412798
lea eax, [esp + 0x1a4]
cmp ebp, eax
je 0x412015
cmp ecx, 0x5ec0c0
je 0x411fef
mov dword [esp], ecx
call fcn.004a0a88
mov eax, dword [esp + 0x10]
mov dword [eax + 0x90], esi
mov dword [eax + 0x94], edi
mov dword [esp + 0x1a4], 0x5ec0c0
mov dword [esp + 0x1a8], 0
mov edi, dword [esp + 0x10]
lea esi, [edi + 0x28]
mov dword [esp + 0x2c], esi
lea esi, [edi + 0x38]
mov ecx, esi
call fcn.00410820
mov eax, dword [edi + 0x90]
mov ecx, edi
mov dword [edi + 0x9c], 0
mov dword [edi + 0xa0], 0
mov edi, dword [edi + 0x94]
add ecx, 0x98
mov dword [esp + 8], ecx
mov ecx, esi
mov dword [esp], eax
mov dword [esp + 4], edi
call fcn.0040e4d0
mov eax, dword [ebx + 0x28]
mov edi, dword [ebx + 0x24]
sub esp, 0xc
mov dword [esp + 0x18], eax
cmp edi, eax
je 0x4121b4
mov dword [esp + 0x30], ebx
jmp 0x412090
add edi, 0x94
cmp dword [esp + 0x18], edi
je 0x4121b0
cmp byte [edi + 0x3c], 0
je 0x412080
mov ebx, dword [esp + 0x10]
mov eax, dword [edi + 0x1c]
mov edx, dword [edi + 0x18]
mov ecx, dword [ebx + 4]
cmp dword [ebx + 8], eax
jne 0x412080
test eax, eax
je 0x4120c0
mov dword [esp + 8], eax
mov dword [esp + 4], ecx
mov dword [esp], edx
call sub.msvcrt.dll_memcmp
test eax, eax
jne 0x412080
mov ebp, dword [esp + 0x44]
mov ebx, dword [esp + 0x40]
mov esi, dword [edi + 0x90]
mov eax, ebp
sub eax, ebx
mov dword [esp + 0x20], esi
mov edx, eax
sar eax, 6
sar edx, 4
test eax, eax
jle 0x41213d
shl eax, 6
mov dword [esp + 0x28], ebp
mov esi, dword [edi + 4]
add eax, ebx
mov dword [esp + 0x24], eax
mov eax, dword [ebx]
cmp dword [eax + 4], esi
je 0x412d38
mov ecx, dword [ebx + 0x10]
mov eax, dword [ecx + 4]
cmp esi, eax
je 0x413160
mov ecx, dword [ebx + 0x20]
mov eax, dword [ecx + 4]
cmp esi, eax
je 0x413207
mov ecx, dword [ebx + 0x30]
mov eax, dword [ecx + 4]
cmp esi, eax
je 0x413267
mov eax, dword [esp + 0x24]
add ebx, 0x40
cmp ebx, eax
jne 0x4120f2
mov ebp, dword [esp + 0x28]
mov edx, ebp
sub edx, ebx
sar edx, 4
cmp edx, 2
je 0x414448
cmp edx, 3
je 0x41442b
cmp edx, 1
jne 0x41216e
mov eax, dword [ebx]
mov edx, edi
call fcn.0040d5e0
test al, al
je 0x41216e
mov eax, dword [esp + 0x20]
cmp dword [ebx + 0xc], eax
je 0x412d69
cmp ebp, dword [esp + 0x48]
je 0x413f35
lea esi, cs:[esi]
mov eax, dword [esp + 0x2c]
mov dword [ebp], edi
add ebp, 0x10
add edi, 0x94
mov dword [ebp - 8], 0
mov dword [ebp - 0xc], eax
mov eax, dword [esp + 0x20]
mov dword [ebp - 4], eax
mov dword [esp + 0x44], ebp
cmp dword [esp + 0x18], edi
jne 0x412090
nop
mov ebx, dword [esp + 0x30]
mov eax, dword [ebx + 0x38]
mov edi, dword [ebx + 0x34]
mov dword [esp + 0x20], eax
cmp edi, eax
je 0x4122fc
mov dword [esp + 0x30], ebx
mov ebp, edi
jmp 0x4121e0
add ebp, 0x94
cmp dword [esp + 0x20], ebp
je 0x4122f8
cmp byte [ebp + 0x3c], 0
je 0x4121d0
mov edi, dword [esp + 0x10]
mov eax, dword [ebp + 0x1c]
mov ecx, dword [ebp + 0x18]
mov ebx, dword [edi + 4]
cmp dword [edi + 8], eax
jne 0x4121d0
test eax, eax
je 0x412210
mov dword [esp + 8], eax
mov dword [esp + 4], ebx
mov dword [esp], ecx
call sub.msvcrt.dll_memcmp
test eax, eax
jne 0x4121d0
mov eax, dword [esp + 0x44]
mov ebx, dword [esp + 0x40]
mov dword [esp + 0x28], eax
sub eax, ebx
mov ecx, eax
sar eax, 6
sar ecx, 4
test eax, eax
jle 0x413779
shl eax, 6
mov esi, dword [ebp + 4]
add eax, ebx
mov dword [esp + 0x18], eax
jmp 0x412279
mov edx, dword [ebx + 0x10]
mov eax, dword [edx + 4]
cmp esi, eax
je 0x412840
mov edx, dword [ebx + 0x20]
mov eax, dword [edx + 4]
cmp esi, eax
je 0x4128a0
mov edx, dword [ebx + 0x30]
mov eax, dword [edx + 4]
cmp esi, eax
je 0x412908
mov eax, dword [esp + 0x18]
add ebx, 0x40
cmp ebx, eax
je 0x413770
mov eax, dword [ebx]
cmp dword [eax + 4], esi
jne 0x412240
test esi, esi
je 0x4122a8
mov edi, dword [ebp]
mov dword [esp + 8], esi
mov dword [esp + 4], edi
mov eax, dword [eax]
mov dword [esp], eax
call sub.msvcrt.dll_memcmp
test eax, eax
jne 0x412920
lea esi, [esi]
cmp dword [esp + 0x28], ebx
jne 0x4121d0
mov ebx, dword [ebp + 0x90]
mov eax, dword [esp + 0x28]
cmp eax, dword [esp + 0x48]
je 0x413f47
mov eax, dword [esp + 0x28]
mov esi, dword [esp + 0x2c]
mov dword [eax], ebp
add eax, 0x10
add ebp, 0x94
mov dword [eax - 0xc], esi
mov dword [eax - 8], 0
mov dword [eax - 4], ebx
mov dword [esp + 0x44], eax
cmp dword [esp + 0x20], ebp
jne 0x4121e0
lea esi, [esi]
mov ebx, dword [esp + 0x30]
cmp byte [esp + 0x1a0], 0
mov esi, dword [esp + 0x1a4]
jne 0x4127bc
lea eax, [esp + 0x1ac]
cmp esi, eax
je 0x4127cc
mov eax, dword [esp + 0x1ac]
mov dword [esp], esi
add eax, 1
mov dword [esp + 4], eax
call fcn.0054fb40
mov eax, dword [esp + 0x10]
mov eax, dword [eax]
mov dword [esp + 0x10], eax
test eax, eax
jne 0x411f80
mov edi, dword [esp + 0x40]
mov esi, dword [esp + 0x44]
lea ebp, [esp + 0x50]
mov ebx, dword [esp + 0x5c]
sub esi, edi
sar esi, 4
test ebx, ebx
je 0x41237d
lea esi, [esi]
mov eax, ebx
mov ebx, dword [ebx]
mov ecx, ebp
mov dword [esp], eax
call fcn.0040e290
sub esp, 4
test ebx, ebx
jne 0x412368
mov eax, dword [esp + 0x58]
mov dword [esp + 4], 0
lea ebx, [esp + 0x6c]
shl eax, 2
mov dword [esp + 8], eax
mov eax, dword [esp + 0x54]
mov dword [esp], eax
call fcn.004a0ad0
mov edx, dword [esp + 0x54]
mov eax, dword [esp + 0x58]
mov dword [esp + 0x60], 0
mov dword [esp + 0x5c], 0
cmp edx, ebx
je 0x4123da
mov ecx, dword [esp + 0x50]
shl eax, 2
mov ebx, dword [ecx]
mov dword [esp + 8], 4
mov dword [esp + 4], eax
mov dword [esp], edx
call dword [ebx + 0xc]
sub esp, 0xc
add esp, 0x1fc
mov eax, edi
mov edx, esi
pop ebx
pop esi
pop edi
pop ebp
ret 4
xor edx, edx
xor edi, edi
jmp 0x41117a
test edi, edi
js 0x4144e6
mov eax, edi
add eax, 1
js 0x412790
mov dword [esp], eax
call fcn.0054fb80
mov dword [esp + 0xcc], edi
mov dword [esp + 0xc4], eax
mov dword [esp + 8], edi
mov dword [esp + 4], ebp
mov dword [esp], eax
call sub.msvcrt.dll_memcpy
mov eax, dword [esp + 0xc4]
jmp 0x4115c5
movzx eax, byte [ebp]
mov byte [esp + 0xcc], al
jmp 0x4115be
test edi, edi
js 0x4144e6
mov eax, edi
add eax, 1
js 0x412790
mov dword [esp], eax
call fcn.0054fb80
mov dword [esp + 0xe4], edi
mov dword [esp + 0xdc], eax
mov dword [esp + 8], edi
mov dword [esp + 4], ebp
mov dword [esp], eax
call sub.msvcrt.dll_memcpy
mov eax, dword [esp + 0xdc]
jmp 0x41160d
movzx eax, byte [ebp]
mov byte [esp + 0xe4], al
jmp 0x411606
mov eax, dword [ebx + 4]
cmp eax, dword [esp + 0x1a4]
jne 0x411c1a
test eax, eax
je 0x4124f5
mov dword [esp + 8], eax
mov eax, dword [esp + 0x1a0]
mov dword [esp + 4], eax
mov eax, dword [ebx]
mov dword [esp], eax
call sub.msvcrt.dll_memcmp
test eax, eax
jne 0x411c1a
mov edx, dword [esp + 0x34]
lea eax, [ebp - 0x20]
call fcn.0040d5e0
test al, al
je 0x411c1a
mov edx, dword [esp + 0x3c]
lea eax, [ebp - 8]
call fcn.0040d5e0
xor eax, 1
mov byte [esp + 0x30], al
jmp 0x411c1a
xor edx, edx
xor edi, edi
jmp 0x411b62
mov dword [esp], edi
lea eax, [esp + 0x1a0]
mov ecx, eax
mov dword [esp + 0x2c], eax
call fcn.004717b0
sub esp, 4
mov eax, dword [esp + 0x110]
mov edx, dword [esp + 0xfc]
lea ecx, [esp + 0x1bc]
mov dword [esp + 0x30], ecx
mov dword [esp + 0x1b8], eax
lea eax, [esp + 0x1c4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x1bc], eax
mov eax, dword [esp + 0xf8]
add edx, eax
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.00485910
mov eax, esi
sub esp, 8
mov edx, dword [esp + 0x2c]
lea ecx, [esp + 0x1dc]
mov dword [esp + 0x1d8], 0
mov dword [esp + 0x24], ecx
mov dword [esp + 0x1d4], ecx
mov byte [esp + 0x1dc], 0
call fcn.00406d80
mov edx, dword [esp + 0x1bc]
mov byte [esp + 0x38], al
mov eax, dword [esp + 0x20]
cmp edx, eax
je 0x4125f3
mov eax, dword [esp + 0x1c4]
mov dword [esp], edx
add eax, 1
mov dword [esp + 4], eax
call fcn.0054fb40
mov edx, dword [esp + 0x1a0]
lea eax, [esp + 0x1a8]
mov dword [esp + 0x28], eax
cmp edx, eax
je 0x41261f
mov eax, dword [esp + 0x1a8]
mov dword [esp], edx
add eax, 1
mov dword [esp + 4], eax
call fcn.0054fb40
cmp byte [esp + 0x38], 0
jne 0x411a09
cmp byte [esi + 0x4c], 0
je 0x41196e
mov dword [esp], edi
mov ecx, dword [esp + 0x2c]
call fcn.004717b0
sub esp, 4
mov eax, dword [esp + 0x110]
mov dword [esp + 0x1b8], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x1bc], eax
mov eax, dword [esp + 0xf8]
cmp eax, ebp
je 0x414003
mov dword [esp + 0x1bc], eax
mov eax, dword [esp + 0x100]
mov edx, dword [esp + 0xfc]
mov dword [esp + 0x1c4], eax
mov eax, dword [esp + 0x2c]
mov edi, dword [esp + 0x24]
mov ecx, esi
mov dword [esp + 0x1c0], edx
mov dword [esp + 0xf8], ebp
mov dword [esp], eax
mov dword [esp + 0xfc], 0
mov byte [esp + 0x100], 0
mov dword [esp + 0x1d4], edi
mov dword [esp + 0x1d8], 0
mov byte [esp + 0x1dc], 0
call fcn.00485850
lea ecx, [ebx - 0x20]
sub esp, 4
mov eax, dword [esp + 0x1b8]
mov dword [esi + 0x18], eax
mov eax, dword [esp + 0x30]
mov dword [esp], eax
call fcn.00485850
lea ecx, [ebx - 8]
sub esp, 4
lea eax, [esp + 0x1d4]
mov dword [esp], eax
call fcn.00485850
sub esp, 4
mov edx, dword [esp + 0x1d4]
cmp edx, edi
je 0x412729
mov eax, dword [esp + 0x1dc]
mov dword [esp], edx
add eax, 1
mov dword [esp + 4], eax
call fcn.0054fb40
mov edx, dword [esp + 0x1bc]
mov eax, dword [esp + 0x20]
cmp edx, eax
je 0x41274e
mov eax, dword [esp + 0x1c4]
mov dword [esp], edx
add eax, 1
mov dword [esp + 4], eax
call fcn.0054fb40
mov edx, dword [esp + 0x1a0]
mov eax, dword [esp + 0x28]
cmp edx, eax
je 0x4119dd
mov eax, dword [esp + 0x1a8]
mov dword [esp], edx
add eax, 1
mov dword [esp + 4], eax
call fcn.0054fb40
jmp 0x4119dd
test esi, esi
js 0x413c7c
lea esi, cs:[esi]
call fcn.005523a0
lea esi, [esi]
test edi, edi
je 0x4127bc
mov dword [esp], ecx
mov dword [esp + 8], edi
mov dword [esp + 4], esi
mov dword [esp + 0x18], ecx
call sub.msvcrt.dll_memcmp
mov ecx, dword [esp + 0x18]
test eax, eax
jne 0x411fd4
cmp esi, 0x5ec0c0
je 0x4127cc
mov dword [esp], esi
call fcn.004a0a88
mov eax, dword [esp + 0x10]
mov eax, dword [eax]
mov dword [esp + 0x10], eax
test eax, eax
jne 0x411f80
jmp 0x412348
mov ecx, dword [esp + 0x1a4]
lea eax, [esp + 0x1ac]
cmp ecx, eax
je 0x4127cc
mov eax, dword [esp + 0x1ac]
mov dword [esp], ecx
add eax, 1
mov dword [esp + 4], eax
call fcn.0054fb40
jmp 0x4127cc
lea edx, [esp + 0x7c]
cmp eax, edx
je 0x410e14
mov esi, dword [esp + 0x7c]
mov dword [esp], eax
lea edx, [esi + 1]
mov dword [esp + 4], edx
call fcn.0054fb40
jmp 0x410e14
lea edi, [ebx + 0x10]
mov dword [esp + 0x24], edi
test esi, esi
je 0x412890
mov edi, dword [ebp]
mov edx, dword [edx]
mov dword [esp + 8], eax
mov dword [esp + 4], edi
mov dword [esp], edx
call sub.msvcrt.dll_memcmp
test eax, eax
je 0x4128f8
mov edx, dword [ebx + 0x20]
mov eax, dword [edx + 4]
cmp esi, eax
je 0x413290
mov edx, dword [ebx + 0x30]
mov eax, dword [edx + 4]
cmp esi, eax
jne 0x41226a
lea edi, [ebx + 0x30]
mov dword [esp + 0x24], edi
jmp 0x412917
mov ebx, edi
jmp 0x4122a8
lea edi, [ebx + 0x20]
mov dword [esp + 0x24], edi
test esi, esi
je 0x412890
mov edi, dword [ebp]
mov edx, dword [edx]
mov dword [esp + 8], eax
mov dword [esp + 4], edi
mov dword [esp], edx
call sub.msvcrt.dll_memcmp
test eax, eax
je 0x4128f8
mov edx, dword [ebx + 0x30]
mov eax, dword [edx + 4]
cmp esi, eax
jne 0x41226a
lea ecx, [ebx + 0x30]
mov edx, dword [edx]
mov dword [esp + 0x24], ecx
lea esi, cs:[esi]
mov dword [esp + 8], eax
mov dword [esp + 4], edi
mov dword [esp], edx
call sub.msvcrt.dll_memcmp
test eax, eax
jne 0x41226a
mov ebx, dword [esp + 0x24]
jmp 0x4122a8
lea edi, [ebx + 0x30]
mov dword [esp + 0x24], edi
test esi, esi
je 0x412890
mov edi, dword [ebp]
mov edx, dword [edx]
jmp 0x4128e0
mov edx, dword [ebx + 0x10]
mov eax, dword [edx + 4]
cmp eax, esi
je 0x413280
mov edx, dword [ebx + 0x20]
mov eax, dword [edx + 4]
cmp eax, esi
jne 0x41225c
lea edi, [ebx + 0x20]
mov dword [esp + 0x24], edi
jmp 0x4128ab
mov dword [esp], ebp
lea eax, [esp + 0x1a0]
mov ecx, eax
mov dword [esp + 0x2c], eax
call fcn.00433540
sub esp, 4
mov eax, dword [esp + 0xf4]
mov edx, dword [esp + 0xc8]
lea ecx, [esp + 0x1bc]
mov dword [esp + 0x30], ecx
mov dword [esp + 0x1b8], eax
lea eax, [esp + 0x1c4]
mov dword [esp + 0x20], eax
mov dword [esp + 0x1bc], eax
mov eax, dword [esp + 0xc4]
add edx, eax
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.00485910
sub esp, 8
lea eax, [esp + 0x1dc]
mov edx, dword [esp + 0xe0]
lea ecx, [esp + 0x1d4]
mov dword [esp + 0x24], eax
mov dword [esp + 0x1d4], eax
mov eax, dword [esp + 0xdc]
mov dword [esp + 0x38], ecx
add edx, eax
mov dword [esp], eax
mov dword [esp + 4], edx
call fcn.00485910
mov eax, dword [esi + 0x18]
sub esp, 8
cmp dword [esp + 0x1b8], eax
jne 0x412a0a
mov eax, dword [esi + 4]
cmp eax, dword [esp + 0x1a4]
je 0x4133d0
mov edx, dword [esp + 0x1d4]
mov eax, dword [esp + 0x24]
cmp edx, eax
je 0x412a2f
mov eax, dword [esp + 0x1dc]
mov dword [esp], edx
add eax, 1
mov dword [esp + 4], eax
call fcn.0054fb40
mov edx, dword [esp + 0x1bc]
mov eax, dword [esp + 0x20]
cmp edx, eax
je 0x412a54
mov eax, dword [esp + 0x1c4]
mov dword [esp], edx
add eax, 1
mov dword [esp + 4], eax
call fcn.0054fb40
mov edx, dword [esp + 0x1a0]
lea eax, [esp + 0x1a8]
mov dword [esp + 0x28], eax
cmp edx, eax
je 0x412a80
mov eax, dword [esp + 0x1a8]
mov dword [esp], edx
add eax, 1
mov dword [esp + 4], eax
call fcn.0054fb40
mov eax, edi
test al, al
je 0x411727
cmp byte [esi + 0x4c], 0
je 0x41163b
mov dword [esp], ebp
mov ecx, dword [esp + 0x2c]
call fcn.00433540
sub esp, 4
mov eax, dword [esp + 0xf4]
lea edi, [esp + 0xcc]
mov dword [esp + 0x1b8], eax
mov eax, dword [esp + 0x20]
mov dword [esp + 0x1bc], eax
mov eax, dword [esp + 0xc4]
cmp eax, edi
je 0x4139f8
mov dword [esp + 0x1bc], eax
mov eax, dword [esp + 0xcc]
mov edx, dword [esp + 0xc8]
mov dword [esp + 0x1c4], eax
lea eax, [esp + 0xcc]
lea edi, [esp + 0xe4]
mov dword [esp + 0x1c0], edx
mov edx, dword [esp + 0xe0]
mov dword [esp + 0xc4], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 0xc8], 0
mov dword [esp + 0x1d4], eax
mov eax, dword [esp + 0xdc]
mov byte [esp + 0xcc], 0
cmp eax, edi
je 0x413860
mov dword [esp + 0x1d4], eax
mov eax, dword [esp + 0xe4]
mov dword [esp + 0x1dc], eax
lea eax, [esp + 0xe4]
lea ecx, [ebx - 0x34]
mov edi, dword [esp + 0x28]
mov byte [esp + 0xe4], 0
movd xmm0, dword [esp + 0x1a4]
mov dword [esp + 0xdc], eax
mov eax, dword [esi]
mov dword [esp + 0x1d8], edx
mov dword [esp + 0xe0], 0
mov edx, dword [esp + 0x1a0]
cmp eax, ecx
je 0x4135e0
cmp edx, edi
je 0x413930
mov dword [esi], edx
mov ecx, dword [esi + 8]
movd xmm2, dword [esp + 0x1a8]
punpckldq xmm0, xmm2
movq qword [esi + 4], xmm0
test eax, eax
je 0x4135fc
mov dword [esp + 0x1a0], eax
mov dword [esp + 0x1a8], ecx
mov dword [esp + 0x1a4], 0
lea ecx, [ebx - 0x18]
mov edi, dword [esp + 0x20]
mov byte [eax], 0
mov eax, dword [esp + 0x1b8]
mov dword [esi + 0x18], eax
mov eax, dword [esi + 0x1c]
cmp eax, ecx
mov edx, eax
mov ecx, dword [esp + 0x1bc]
je 0x4135b0
cmp ecx, edi
je 0x413a40
movq xmm0, qword [esp + 0x1c0]
mov edx, dword [esi + 0x24]
mov dword [esi + 0x1c], ecx
movq qword [esi + 0x20], xmm0
test eax, eax
je 0x4135c9
mov dword [esp + 0x1bc], eax
mov dword [esp + 0x1c4], edx
mov dword [esp + 0x1c0], 0
mov edi, dword [esp + 0x24]
mov byte [eax], 0
mov eax, dword [esi + 0x34]
mov ecx, dword [esp + 0x1d4]
mov edx, eax
cmp eax, ebx
je 0x413580
cmp ecx, edi
je 0x413990
movq xmm0, qword [esp + 0x1d8]
mov edx, dword [esi + 0x3c]
mov dword [esi + 0x34], ecx
movq qword [esi + 0x38], xmm0
test eax, eax
je 0x413599
mov dword [esp + 0x1d4], eax
mov dword [esp + 0x1dc], edx
mov dword [esp + 0x1d8], 0
mov byte [eax], 0
mov eax, dword [esp + 0x24]
mov edx, dword [esp + 0x1d4]
cmp edx, eax
je 0x412cc1
mov eax, dword [esp + 0x1dc]
mov dword [esp], edx
add eax, 1
mov dword [esp + 4], eax
call fcn.0054fb40
mov edx, dword [esp + 0x1bc]
mov eax, dword [esp + 0x20]
cmp edx, eax
je 0x412ce6
mov eax, dword [esp + 0x1c4]
mov dword [esp], edx
add eax, 1
mov dword [esp + 4], eax
call fcn.0054fb40
mov edx, dword [esp + 0x1a0]
mov eax, dword [esp + 0x28]
cmp edx, eax
je 0x4116fb
mov eax, dword [esp + 0x1a8]
mov dword [esp], edx
add eax, 1
mov dword [esp + 4], eax
call fcn.0054fb40
mov edi, dword [esi + 0x50]
mov eax, dword [esp + 0x44]
cmp dword [esp + 0x48], eax
jne 0x41170c
lea ecx, [esp + 0x40]
call fcn.0047f620
mov eax, dword [esp + 0x44]
jmp 0x41170c
test esi, esi
je 0x412d58
mov ebp, dword [edi]
mov dword [esp + 8], esi
mov dword [esp + 4], ebp
mov eax, dword [eax]
mov dword [esp], eax
call sub.msvcrt.dll_memcmp
test eax, eax
jne 0x4132c8
mov eax, dword [esp + 0x20]
cmp dword [ebx + 0xc], eax
jne 0x4120fd
mov ebp, dword [esp + 0x28]
cmp ebp, ebx
jne 0x412080
cmp ebp, dword [esp + 0x48]
jne 0x412180
jmp 0x413f35
mov edx, edi
mov eax, ebx
call fcn.00406d80
test al, al
je 0x412da0
lea eax, [esp + 0x1a8]
mov dword [esp + 0x2c], eax
jmp 0x410ffc
mov eax, dword [ebx]
lea ecx, [ebp - 0x34]
movd xmm0, dword [esp + 0x1a4]
mov edx, dword [esp + 0x1a0]
cmp eax, ecx
je 0x4137b0
lea esi, [esp + 0x1a8]
mov dword [esp + 0x2c], esi
cmp edx, esi
je 0x413ac0
mov dword [ebx], edx
mov ecx, dword [ebx + 8]
movd xmm3, dword [esp + 0x1a8]
punpckldq xmm0, xmm3
movq qword [ebx + 4], xmm0
test eax, eax
je 0x4137d7
mov dword [esp + 0x1a0], eax
mov dword [esp + 0x1a8], ecx
mov dword [esp + 0x1a4], 0
lea edx, [ebp - 0x18]
mov byte [eax], 0
mov eax, dword [esp + 0x1b8]
mov dword [ebx + 0x18], eax
mov eax, dword [ebx + 0x1c]
cmp eax, edx
mov esi, eax
mov edx, dword [esp + 0x1bc]
je 0x413828
mov ecx, dword [esp + 0x1c]
cmp edx, ecx
je 0x413bd0
mov esi, dword [esp + 0x1c0]
mov edi, dword [esp + 0x1c4]
mov dword [ebx + 0x1c], edx
mov ecx, dword [ebx + 0x24]
mov dword [ebx + 0x20], esi
mov dword [ebx + 0x24], edi
test eax, eax
je 0x413845
mov dword [esp + 0x1bc], eax
mov dword [esp + 0x1c4], ecx
mov dword [esp + 0x1c0], 0
mov esi, dword [esp + 0x28]
mov byte [eax], 0
mov eax, dword [ebx + 0x34]
mov edx, dword [esp + 0x1d4]
mov edi, eax
cmp eax, ebp
je 0x4137f8
cmp edx, esi
je 0x413b58
mov esi, dword [esp + 0x1d8]
mov edi, dword [esp + 0x1dc]
mov dword [ebx + 0x34], edx
mov ecx, dword [ebx + 0x3c]
mov dword [ebx + 0x38], esi
mov dword [ebx + 0x3c], edi
test eax, eax
je 0x413811
mov dword [esp + 0x1d4], eax
mov dword [esp + 0x1dc], ecx
mov dword [esp + 0x1d8], 0
mov byte [eax], 0
mov eax, dword [esp + 0x44]
mov esi, dword [ebx + 0x50]
cmp eax, dword [esp + 0x48]
jne 0x410fbc
lea ecx, [esp + 0x40]
call fcn.0047f620
mov eax, dword [esp + 0x44]
jmp 0x410fbc
lea ecx, [esp + 0x40]
mov dword [esp + 0x1c], edx
call fcn.0047f620
mov eax, dword [esp + 0x44]
mov edx, dword [esp + 0x1c]
jmp 0x410af4
lea edi, [esp + 0x1a0]
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x1a0], esi
mov dword [esp], edi
call fcn.0047fcc0
mov edi, eax
sub esp, 4
lea eax, [eax + 4]
mov dword [edi + 0xa4], eax
lea ecx, [esp + 0x74]
lea eax, [edi + 0x90]
lea edx, [edi + 0x28]
cmp ecx, eax
je 0x412faa
mov eax, dword [esp + 0x78]
mov ecx, dword [esp + 0x74]
mov dword [esp + 0x1c], eax
mov eax, dword [edi + 0x90]
cmp eax, 0x5ec0c0
je 0x412f8a
mov dword [esp], eax
mov dword [esp + 0x2c], ecx
mov dword [esp + 0x28], edx
call fcn.004a0a88
mov ecx, dword [esp + 0x2c]
mov edx, dword [esp + 0x28]
mov eax, dword [esp + 0x1c]
mov dword [edi + 0x90], ecx
mov dword [esp + 0x74], 0x5ec0c0
mov dword [edi + 0x94], eax
mov dword [esp + 0x78], 0
lea eax, [edi + 0x38]
mov dword [esp + 0x28], edx
add edi, 0x98
mov ecx, eax
mov dword [esp + 0x1c], eax
call fcn.00410820
mov dword [edi + 4], 0
mov ecx, dword [esp + 0x28]
mov dword [edi + 8], 0
call fcn.00465370
mov ecx, dword [edi - 4]
mov eax, dword [edi - 8]
mov dword [esp + 8], edi
mov dword [esp + 4], ecx
mov ecx, dword [esp + 0x1c]
mov dword [esp], eax
call fcn.0040e4d0
sub esp, 0xc
mov edx, dword [esp + 0x28]
jmp 0x410ae3
test esi, esi
js 0x4144e6
add edi, edi
cmp esi, edi
jb 0x413420
mov eax, esi
add eax, 1
js 0x412790
mov edi, esi
mov dword [esp], eax
mov dword [esp + 0x1c], ecx
call fcn.0054fb80
mov ecx, dword [esp + 0x1c]
mov dword [esp + 0x10], eax
call fcn.00539180
mov eax, dword [esp + 0x10]
mov dword [ebx - 0x20], edi
mov dword [ebx - 0x28], eax
mov edx, dword [esp + 0xfc]
cmp esi, 1
je 0x413620
mov dword [esp + 8], esi
mov dword [esp + 4], edx
mov dword [esp], eax
call sub.msvcrt.dll_memcpy
mov eax, dword [ebx - 0x28]
jmp 0x410b48
lea ecx, [ebx - 0x64]
lea eax, [esp + 0x134]
cmp ecx, eax
je 0x4130ad
mov eax, dword [esi - 0x28]
lea edx, [ebx - 0x5c]
mov edi, dword [esp + 0x138]
cmp eax, edx
je 0x4140ad
mov ebp, dword [esi - 0x20]
cmp ebp, edi
jb 0x413360
test edi, edi
jne 0x4133a2
mov dword [esi - 0x24], edi
mov byte [eax + edi], 0
lea edx, [esp + 0x14c]
lea eax, [ebx - 0x4c]
cmp edx, eax
je 0x411828
mov eax, dword [esp + 0x150]
mov edi, dword [esp + 0x14c]
mov edx, dword [esi - 8]
mov ebp, eax
mov dword [esp + 0x10], eax
mov eax, dword [esi - 0x10]
sub ebp, edi
sub edx, eax
cmp edx, ebp
jb 0x413ed0
mov edx, dword [esi - 0xc]
mov dword [esp + 0x20], edx
sub edx, eax
cmp edx, ebp
jae 0x413dea
cmp edx, 4
jle 0x414482
mov dword [esp + 8], edx
mov dword [esp + 4], edi
mov dword [esp], eax
call sub.msvcrt.dll_memmove
mov eax, dword [esp + 0x150]
mov edx, dword [esi - 0xc]
mov edi, dword [esp + 0x14c]
mov dword [esp + 0x10], eax
mov eax, dword [esi - 0x10]
mov dword [esp + 0x20], edx
sub edx, eax
mov ecx, dword [esp + 0x10]
add edx, edi
sub ecx, edx
cmp ecx, 4
jle 0x41446a
mov eax, dword [esp + 0x20]
mov dword [esp + 8], ecx
mov dword [esp + 4], edx
mov dword [esp], eax
call sub.msvcrt.dll_memmove
mov eax, dword [esi - 0x10]
add eax, ebp
mov dword [esi - 0xc], eax
jmp 0x411828
lea edx, [ebx + 0x10]
test esi, esi
je 0x4131f0
mov ebp, dword [edi]
mov ecx, dword [ecx]
mov dword [esp + 8], eax
mov dword [esp + 4], ebp
mov dword [esp], ecx
mov dword [esp + 0x34], edx
call sub.msvcrt.dll_memcmp
mov edx, dword [esp + 0x34]
test eax, eax
je 0x4131f0
mov ecx, dword [ebx + 0x20]
mov eax, dword [ecx + 4]
cmp esi, eax
je 0x4140b7
mov ecx, dword [ebx + 0x30]
mov eax, dword [ecx + 4]
cmp esi, eax
jne 0x412127
lea edx, [ebx + 0x30]
lea esi, [esi]
mov ebp, dword [edi]
mov ecx, dword [ecx]
mov dword [esp + 8], eax
mov dword [esp + 4], ebp
mov dword [esp], ecx
mov dword [esp + 0x34], edx
call sub.msvcrt.dll_memcmp
mov edx, dword [esp + 0x34]
test eax, eax
jne 0x412127
mov eax, dword [esp + 0x20]
cmp dword [ebx + 0x3c], eax
jne 0x412127
mov ebp, dword [esp + 0x28]
mov ebx, edx
jmp 0x412d69
mov eax, dword [esp + 0x20]
cmp dword [ebx + 0x1c], eax
je 0x4131e1
mov ecx, dword [ebx + 0x20]
mov eax, dword [ecx + 4]
cmp esi, eax
jne 0x412119
lea edx, [ebx + 0x20]
test esi, esi
je 0x413250
mov ebp, dword [edi]
mov ecx, dword [ecx]
mov dword [esp + 8], eax
mov dword [esp + 4], ebp
mov dword [esp], ecx
mov dword [esp + 0x34], edx
call sub.msvcrt.dll_memcmp
mov edx, dword [esp + 0x34]
test eax, eax
je 0x413250
mov ecx, dword [ebx + 0x30]
mov eax, dword [ecx + 4]
cmp eax, esi
jne 0x412127
mov ecx, dword [ecx]
lea edx, [ebx + 0x30]
jmp 0x4131b4
mov eax, dword [esp + 0x20]
cmp dword [ebx + 0x2c], eax
je 0x4131e1
mov ecx, dword [ebx + 0x30]
mov eax, dword [ecx + 4]
cmp esi, eax
jne 0x412127
lea edx, [ebx + 0x30]
test esi, esi
jne 0x4131b0
jmp 0x4131d4
lea ecx, [ebx + 0x10]
mov edx, dword [edx]
mov dword [esp + 0x24], ecx
jmp 0x412850
lea ecx, [ebx + 0x20]
mov edx, dword [edx]
mov dword [esp + 0x24], ecx
jmp 0x4128b0
cmp esi, 4
jle 0x414295
mov dword [esp + 8], esi
mov dword [esp + 4], edi
mov dword [esp], eax
call sub.msvcrt.dll_memmove
mov eax, dword [ebx - 0x10]
add eax, esi
jmp 0x410bf9
mov ecx, dword [ebx + 0x10]
mov eax, dword [ecx + 4]
cmp eax, esi
je 0x413e1b
mov ecx, dword [ebx + 0x20]
mov eax, dword [ecx + 4]
cmp esi, eax
jne 0x412119
lea edx, [ebx + 0x20]
jmp 0x41320e
lea esi, [edx + 1]
mov edi, esi
cmp esi, 4
jae 0x413e25
test esi, esi
je 0x410f6d
movzx ecx, byte [esp + 0x1c4]
and esi, 2
mov byte [eax], cl
je 0x410f6d
movzx esi, word [esp + edi + 0x1c2]
mov word [eax + edi - 2], si
jmp 0x410f6d
test eax, eax
je 0x41334c
mov dword [esp + 8], eax
mov dword [esp + 4], ecx
mov dword [esp], edx
call sub.msvcrt.dll_memcmp
test eax, eax
jne 0x411462
cmp byte [esi + 0x4c], 0
je 0x4113f0
jmp 0x411462
test edi, edi
js 0x4144e6
add ebp, ebp
cmp edi, ebp
jb 0x413fa7
mov eax, edi
add eax, 1
js 0x412790
mov ebp, edi
mov dword [esp], eax
mov dword [esp + 0x20], ecx
call fcn.0054fb80
mov ecx, dword [esp + 0x20]
mov dword [esp + 0x10], eax
call fcn.00539180
mov eax, dword [esp + 0x10]
mov dword [esi - 0x20], ebp
mov dword [esi - 0x28], eax
mov edx, dword [esp + 0x134]
cmp edi, 1
je 0x4140c1
mov dword [esp + 8], edi
mov dword [esp + 4], edx
mov dword [esp], eax
call sub.msvcrt.dll_memcpy
mov eax, dword [esi - 0x28]
jmp 0x4130a6
test eax, eax
je 0x4133f5
mov dword [esp + 8], eax
mov eax, dword [esp + 0x1a0]
mov dword [esp + 4], eax
mov eax, dword [esi]
mov dword [esp], eax
call sub.msvcrt.dll_memcmp
test eax, eax
jne 0x412a0a
mov edx, dword [esp + 0x30]
lea eax, [ebx - 0x20]
call fcn.0040d5e0
test al, al
je 0x412a0a
mov edx, dword [esp + 0x38]
lea eax, [ebx - 8]
call fcn.0040d5e0
xor eax, 1
mov edi, eax
jmp 0x412a0a
test edi, edi
js 0x412790
lea eax, [edi + 1]
jmp 0x41301f
cmp ecx, esi
je 0x413708
movq xmm5, qword [esp + 0x1a4]
mov dword [ebx], ecx
movq qword [ebx + 4], xmm5
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x1a0], eax
mov eax, dword [esp + 0x2c]
jmp 0x411d03
mov esi, dword [esp + 0x28]
cmp ecx, esi
je 0x413630
movq xmm7, qword [esp + 0x1d8]
mov dword [ebx + 0x34], ecx
movq qword [ebx + 0x38], xmm7
mov eax, dword [esp + 0x28]
mov dword [esp + 0x1d4], eax
mov eax, dword [esp + 0x28]
jmp 0x411dcc
mov esi, dword [esp + 0x1c]
cmp ecx, esi
je 0x4136a0
movq xmm6, qword [esp + 0x1c0]
mov dword [ebx + 0x1c], ecx
movq qword [ebx + 0x20], xmm6
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x1bc], eax
mov eax, dword [esp + 0x1c]
jmp 0x411d6e
lea eax, [esp + 0x6c]
mov dword [esp + 0x68], 0
mov dword [esp + 0x58], 1
mov dword [esp + 0x6c], 0
mov dword [esp + 0x54], eax
mov edi, dword [esp + 0x40]
mov esi, dword [esp + 0x44]
sub esi, edi
sar esi, 4
jmp 0x41237d
mov edi, 0xf
jmp 0x410b38
cmp esi, 0x7ffffffc
ja 0x414338
mov dword [esp], esi
call fcn.0054fb80
mov ecx, eax
cmp esi, 4
jle 0x41449f
mov dword [esp + 8], esi
mov dword [esp + 4], edi
mov dword [esp], eax
mov dword [esp + 0x10], eax
call sub.msvcrt.dll_memmove
mov ecx, dword [esp + 0x10]
mov eax, dword [ebx - 0x10]
test eax, eax
je 0x41356f
mov edx, dword [ebx - 8]
mov dword [esp], eax
mov dword [esp + 0x10], ecx
sub edx, eax
mov dword [esp + 4], edx
call fcn.0054fb40
mov ecx, dword [esp + 0x10]
lea eax, [ecx + esi]
mov dword [ebx - 0x10], ecx
mov dword [ebx - 8], eax
jmp 0x410bf9
cmp ecx, edi
je 0x413990
movq xmm7, qword [esp + 0x1d8]
mov dword [esi + 0x34], ecx
movq qword [esi + 0x38], xmm7
mov eax, dword [esp + 0x24]
mov dword [esp + 0x1d4], eax
mov eax, dword [esp + 0x24]
jmp 0x412c8e
cmp ecx, edi
je 0x413a40
movq xmm6, qword [esp + 0x1c0]
mov dword [esi + 0x1c], ecx
movq qword [esi + 0x20], xmm6
mov eax, dword [esp + 0x20]
mov dword [esp + 0x1bc], eax
mov eax, dword [esp + 0x20]
jmp 0x412c36
cmp edx, edi
je 0x413930
mov dword [esi], edx
movd xmm5, dword [esp + 0x1a8]
punpckldq xmm0, xmm5
movq qword [esi + 4], xmm0
mov eax, dword [esp + 0x28]
mov dword [esp + 0x1a0], eax
lea eax, [esp + 0x1a8]
mov dword [esp + 0x28], eax
jmp 0x412bd1
movzx edx, byte [edx]
mov byte [eax], dl
mov eax, dword [ebx - 0x28]
jmp 0x410b48
mov ecx, dword [esp + 0x1d8]
lea esi, [ebp - 8]
mov dword [esp + 0x30], ecx
cmp dword [esp + 0x3c], esi
je 0x413488
test ecx, ecx
je 0x41368b
cmp ecx, 1
je 0x413f5d
mov esi, ecx
cmp ecx, 4
jae 0x41423b
test ecx, ecx
je 0x413685
movzx eax, byte [esp + 0x1dc]
and esi, 2
mov byte [edx], al
jne 0x41450e
mov eax, dword [esp + 0x1d8]
mov edx, dword [ebx + 0x34]
mov dword [esp + 0x30], eax
mov ecx, dword [esp + 0x30]
mov eax, edx
mov dword [ebx + 0x38], ecx
mov byte [eax + ecx], 0
mov eax, dword [esp + 0x1d4]
jmp 0x411dcc
mov ecx, dword [esp + 0x1c0]
lea esi, [ebp - 0x20]
mov edi, ecx
cmp dword [esp + 0x34], esi
je 0x4134c0
test ecx, ecx
je 0x4136f1
cmp ecx, 1
je 0x413f76
cmp ecx, 4
jae 0x4141f4
test ecx, ecx
je 0x4136ed
movzx eax, byte [esp + 0x1c4]
mov byte [edx], al
test cl, 2
jne 0x4144f2
mov edx, dword [ebx + 0x1c]
mov edi, dword [esp + 0x1c0]
mov ecx, edi
mov eax, edx
mov dword [ebx + 0x20], ecx
mov byte [eax + ecx], 0
mov eax, dword [esp + 0x1bc]
jmp 0x411d6e
mov ecx, dword [esp + 0x1a4]
mov esi, ecx
cmp ebx, edi
je 0x413453
test ecx, ecx
je 0x413753
cmp ecx, 1
je 0x413f8f
cmp ecx, 4
jae 0x4141ad
test ecx, ecx
je 0x41374f
movzx eax, byte [esp + 0x1a8]
mov byte [edx], al
test cl, 2
jne 0x4144cb
mov edx, dword [ebx]
mov esi, dword [esp + 0x1a4]
mov ecx, esi
mov eax, edx
mov dword [ebx + 4], ecx
mov byte [eax + ecx], 0
mov eax, dword [esp + 0x1a0]
jmp 0x411d03
mov ecx, dword [esp + 0x28]
sub ecx, ebx
sar ecx, 4
cmp ecx, 2
je 0x413c95
cmp ecx, 3
je 0x413c81
cmp ecx, 1
jne 0x4122b2
mov eax, dword [ebx]
mov edx, ebp
call fcn.0040d5e0
test al, al
je 0x4122b2
jmp 0x4122a8
lea esi, [esp + 0x1a8]
mov dword [esp + 0x2c], esi
cmp edx, esi
je 0x413ac0
mov dword [ebx], edx
movd xmm5, dword [esp + 0x1a8]
punpckldq xmm0, xmm5
movq qword [ebx + 4], xmm0
mov eax, dword [esp + 0x2c]
mov dword [esp + 0x1a0], eax
lea eax, [esp + 0x1a8]
mov dword [esp + 0x2c], eax
jmp 0x412dfd
cmp edx, esi
je 0x413b58
movq xmm7, qword [esp + 0x1d8]
mov dword [ebx + 0x34], edx
movq qword [ebx + 0x38], xmm7
mov eax, dword [esp + 0x28]
mov dword [esp + 0x1d4], eax
mov eax, dword [esp + 0x28]
jmp 0x412ec6
mov edi, dword [esp + 0x1c]
cmp edx, edi
je 0x413bd0
movq xmm6, qword [esp + 0x1c0]
mov dword [ebx + 0x1c], edx
movq qword [ebx + 0x20], xmm6
mov eax, dword [esp + 0x1c]
mov dword [esp + 0x1bc], eax
mov eax, dword [esp + 0x1c]
jmp 0x412e68
lea ecx, [edx + 1]
cmp ecx, 4
jae 0x413cba
test ecx, ecx
je 0x412b53
movzx eax, byte [esp + 0xe4]
mov byte [esp + 0x1dc], al
test cl, 2
je 0x412b53
movzx eax, word [esp + ecx + 0xe2]
mov word [esp + ecx + 0x1da], ax
jmp 0x412b53
lea edx, [eax + 1]
cmp edx, 4
jae 0x413d34
test edx, edx
je 0x4116d3
movzx ecx, byte [esp + 0xe4]
mov byte [ebx], cl
test dl, 2
je 0x4116d3
movzx ecx, word [esp + edx + 0xe2]
mov word [ebx + edx - 2], cx
jmp 0x4116d3
mov edx, dword [esp + 0xc8]
lea edi, [edx + 1]
mov ebp, edi
cmp edi, 4
jae 0x413d89
test edi, edi
je 0x411682
movzx ecx, byte [esp + 0xcc]
and edi, 2
mov byte [eax], cl
je 0x411682
movzx edi, word [esp + ebp + 0xca]
mov word [eax + ebp - 2], di
jmp 0x411682
mov edi, dword [esp + 0x2c]
cmp esi, edi
je 0x414491
movd edi, xmm0
test edi, edi
je 0x41396e
cmp edi, 1
je 0x413fb7
mov edi, dword [esp + 0x28]
mov dword [esp], eax
movd dword [esp + 8], xmm0
mov dword [esp + 4], edi
call sub.msvcrt.dll_memcpy
mov eax, dword [esi]
movd xmm0, dword [esp + 0x1a4]
movd edi, xmm0
movd dword [esi + 4], xmm0
mov byte [eax + edi], 0
mov eax, dword [esp + 0x1a0]
jmp 0x412bd1
mov ecx, dword [esp + 0x1d8]
lea edi, [ebx - 8]
mov ebp, ecx
cmp dword [esp + 0x38], edi
je 0x4135a4
test ecx, ecx
je 0x4139e1
cmp ecx, 1
je 0x413fea
cmp ecx, 4
jae 0x4142ef
test ecx, ecx
je 0x4139dd
movzx eax, byte [esp + 0x1dc]
mov byte [edx], al
test cl, 2
jne 0x414532
mov ebp, dword [esp + 0x1d8]
mov edx, dword [esi + 0x34]
mov ecx, ebp
mov eax, edx
mov dword [esi + 0x38], ecx
mov byte [eax + ecx], 0
mov eax, dword [esp + 0x1d4]
jmp 0x412c8e
mov edx, dword [esp + 0xc8]
lea ecx, [edx + 1]
cmp ecx, 4
jae 0x413cf7
test ecx, ecx
je 0x412aee
movzx eax, byte [esp + 0xcc]
mov byte [esp + 0x1c4], al
test cl, 2
je 0x412aee
movzx eax, word [esp + ecx + 0xca]
mov word [esp + ecx + 0x1c2], ax
jmp 0x412aee
mov ecx, dword [esp + 0x1c0]
lea edi, [ebx - 0x20]
mov ebp, ecx
cmp dword [esp + 0x30], edi
je 0x4135d4
test ecx, ecx
je 0x413a91
cmp ecx, 1
je 0x413fd1
cmp ecx, 4
jae 0x4142a6
test ecx, ecx
je 0x413a8d
movzx eax, byte [esp + 0x1c4]
mov byte [edx], al
test cl, 2
jne 0x41454e
mov ebp, dword [esp + 0x1c0]
mov edx, dword [esi + 0x1c]
mov ecx, ebp
mov eax, edx
mov dword [esi + 0x20], ecx
mov byte [eax + ecx], 0
mov eax, dword [esp + 0x1bc]
jmp 0x412c36
mov ebx, dword [ecx + 0x38]
mov eax, dword [ecx + 0x34]
mov dword [esp + 0x1c], ebx
cmp ebx, eax
jne 0x41126a
jmp 0x411ed4
cmp ebx, edi
je 0x414498
movd esi, xmm0
test esi, esi
je 0x413afa
cmp esi, 1
je 0x41435e
mov esi, dword [esp + 0x2c]
mov dword [esp], eax
movd dword [esp + 8], xmm0
mov dword [esp + 4], esi
call sub.msvcrt.dll_memcpy
mov eax, dword [ebx]
movd xmm0, dword [esp + 0x1a4]
movd esi, xmm0
movd dword [ebx + 4], xmm0
mov byte [eax + esi], 0
mov eax, dword [esp + 0x1a0]
jmp 0x412dfd
lea esi, [edx + 1]
mov edi, esi
cmp esi, 4
jae 0x413e76
test esi, esi
je 0x410f15
movzx ecx, byte [esp + 0x1a8]
and esi, 2
mov byte [eax], cl
je 0x410f15
movzx esi, word [esp + edi + 0x1a6]
mov word [eax + edi - 2], si
jmp 0x410f15
mov edx, dword [esp + 0x1d8]
lea esi, [esp + 0x1d4]
lea ecx, [ebp - 8]
mov dword [esp + 0x30], edx
cmp esi, ecx
je 0x41381c
test edx, edx
je 0x413bb8
cmp edx, 1
je 0x414345
mov esi, edx
cmp edx, 4
jae 0x414391
test edx, edx
je 0x413bb2
movzx eax, byte [esp + 0x1dc]
and esi, 2
mov byte [edi], al
jne 0x414586
mov eax, dword [esp + 0x1d8]
mov edi, dword [ebx + 0x34]
mov dword [esp + 0x30], eax
mov edx, dword [esp + 0x30]
mov eax, edi
mov dword [ebx + 0x38], edx
mov byte [eax + edx], 0
mov eax, dword [esp + 0x1d4]
jmp 0x412ec6
mov edx, dword [esp + 0x1c0]
lea ecx, [ebp - 0x20]
mov edi, edx
cmp dword [esp + 0x34], ecx
je 0x413850
test edx, edx
je 0x413c21
cmp edx, 1
je 0x414378
cmp edx, 4
jae 0x4143e0
test edx, edx
je 0x413c1d
movzx eax, byte [esp + 0x1c4]
mov byte [esi], al
test dl, 2
jne 0x41456a
mov edi, dword [esp + 0x1c0]
mov esi, dword [ebx + 0x1c]
mov edx, edi
mov eax, esi
mov dword [ebx + 0x20], edx
mov byte [eax + edx], 0
mov eax, dword [esp + 0x1bc]
jmp 0x412e68
mov edx, dword [esi + 0x20]
lea ecx, [esp + 0x6c]
mov dword [esp + 0x54], ecx
mov dword [esp + 0x6c], edx
jmp 0x4109ef
lea ecx, [esp + 0x40]
call fcn.0047f620
mov eax, dword [esp + 0x44]
jmp 0x4119ee
lea eax, [esp + 0xb0]
jmp 0x4118e9
test ebp, ebp
jns 0x412790
call fcn.005523d0
mov eax, dword [ebx]
mov edx, ebp
call fcn.0040d5e0
test al, al
jne 0x4122a8
add ebx, 0x10
mov eax, dword [ebx]
mov edx, ebp
call fcn.0040d5e0
test al, al
jne 0x4122a8
add ebx, 0x10
jmp 0x413794
lea eax, [esp + 0xcc]
jmp 0x412429
mov edi, dword [esp + ecx + 0xe0]
mov dword [esp + ecx + 0x1d8], edi
cmp edx, 4
jb 0x412b53
mov dword [esp + 0x3c], edx
mov edi, edx
mov ebp, dword [esp + 0x24]
xor ecx, ecx
and edi, 0xfffffffc
mov edx, dword [eax + ecx]
mov dword [ebp + ecx], edx
add ecx, 4
cmp ecx, edi
jb 0x413ce0
mov edx, dword [esp + 0x3c]
jmp 0x412b53
mov edi, dword [esp + ecx + 0xc8]
mov dword [esp + ecx + 0x1c0], edi
cmp edx, 4
jb 0x412aee
mov dword [esp + 0x3c], edx
mov edi, edx
mov ebp, dword [esp + 0x20]
xor ecx, ecx
and edi, 0xfffffffc
mov edx, dword [eax + ecx]
mov dword [ebp + ecx], edx
add ecx, 4
cmp ecx, edi
jb 0x413d1d
mov edx, dword [esp + 0x3c]
jmp 0x412aee
mov ecx, dword [esp + 0xe4]
lea ebp, [ebx + 4]
mov edi, ebx
and ebp, 0xfffffffc
mov dword [ebx], ecx
mov ecx, dword [esp + edx + 0xe0]
sub edi, ebp
mov dword [ebx + edx - 4], ecx
add edx, edi
lea ecx, [esp + 0xe4]
and edx, 0xfffffffc
sub ecx, edi
cmp edx, 4
jb 0x4116d3
mov dword [esp + 0x20], eax
and edx, 0xfffffffc
xor edi, edi
mov eax, dword [ecx + edi]
mov dword [ebp + edi], eax
add edi, 4
cmp edi, edx
jb 0x413d72
mov eax, dword [esp + 0x20]
jmp 0x4116d3
mov edi, dword [esp + 0xcc]
mov ecx, ebp
mov dword [eax], edi
mov edi, dword [esp + ebp + 0xc8]
mov dword [eax + ebp - 4], edi
lea ebp, [ebx - 0x14]
lea edi, [esp + 0xcc]
and ebp, 0xfffffffc
sub eax, ebp
add ecx, eax
sub edi, eax
and ecx, 0xfffffffc
cmp ecx, 4
jb 0x411682
mov dword [esp + 0x20], edx
and ecx, 0xfffffffc
xor eax, eax
mov edx, dword [edi + eax]
mov dword [ebp + eax], edx
add eax, 4
cmp eax, ecx
jb 0x413dc7
mov edx, dword [esp + 0x20]
jmp 0x411682
lea eax, [esp + 0xe4]
jmp 0x412489
cmp ebp, 4
jle 0x4144a8
mov dword [esp + 8], ebp
mov dword [esp + 4], edi
mov dword [esp], eax
call sub.msvcrt.dll_memmove
mov eax, dword [esi - 0x10]
add eax, ebp
jmp 0x413157
mov eax, dword [esp + 0x6c]
mov ecx, ebp
mov dword [ebx + 0x20], eax
jmp 0x411ef6
mov ecx, dword [ecx]
lea edx, [ebx + 0x10]
jmp 0x41316f
mov esi, dword [esp + 0x1c4]
mov ecx, edi
mov dword [eax], esi
mov esi, dword [esp + edi + 0x1c0]
mov dword [eax + edi - 4], esi
lea edi, [ebp - 0x14]
mov esi, dword [esp + 0x1c]
and edi, 0xfffffffc
sub eax, edi
add ecx, eax
sub esi, eax
and ecx, 0xfffffffc
cmp ecx, 4
jb 0x410f6d
mov dword [esp + 0x30], edx
and ecx, 0xfffffffc
xor eax, eax
mov edx, dword [esi + eax]
mov dword [edi + eax], edx
add eax, 4
cmp eax, ecx
jb 0x413e60
mov edx, dword [esp + 0x30]
jmp 0x410f6d
mov esi, dword [esp + 0x1a8]
mov ecx, edi
mov dword [eax], esi
mov esi, dword [esp + edi + 0x1a4]
mov dword [eax + edi - 4], esi
lea edi, [ebp - 0x30]
mov esi, dword [esp + 0x2c]
and edi, 0xfffffffc
sub eax, edi
add ecx, eax
sub esi, eax
and ecx, 0xfffffffc
cmp ecx, 4
jb 0x410f15
mov dword [esp + 0x30], edx
and ecx, 0xfffffffc
xor eax, eax
mov edx, dword [esi + eax]
mov dword [edi + eax], edx
add eax, 4
cmp eax, ecx
jb 0x413eb1
mov edx, dword [esp + 0x30]
jmp 0x410f15
cmp ebp, 0x7ffffffc
ja 0x4144b5
mov dword [esp], ebp
call fcn.0054fb80
mov ecx, eax
cmp ebp, 4
jle 0x4144c2
mov dword [esp + 8], ebp
mov dword [esp + 4], edi
mov dword [esp], eax
mov dword [esp + 0x10], eax
call sub.msvcrt.dll_memmove
mov ecx, dword [esp + 0x10]
mov eax, dword [esi - 0x10]
test eax, eax
je 0x413f27
mov edx, dword [esi - 8]
mov dword [esp], eax
mov dword [esp + 0x10], ecx
sub edx, eax
mov dword [esp + 4], edx
call fcn.0054fb40
mov ecx, dword [esp + 0x10]
lea eax, [ecx + ebp]
mov dword [esi - 0x10], ecx
mov dword [esi - 8], eax
jmp 0x413157
lea ecx, [esp + 0x40]
call fcn.0047f620
mov ebp, dword [esp + 0x44]
jmp 0x412180
lea ecx, [esp + 0x40]
call fcn.0047f620
mov eax, dword [esp + 0x44]
mov dword [esp + 0x28], eax
jmp 0x4122c6
movzx eax, byte [esp + 0x1dc]
mov byte [edx], al
mov ecx, dword [esp + 0x1d8]
mov eax, dword [ebx + 0x34]
jmp 0x41368b
movzx eax, byte [esp + 0x1c4]
mov byte [edx], al
mov ecx, dword [esp + 0x1c0]
mov eax, dword [ebx + 0x1c]
jmp 0x4136f1
movzx eax, byte [esp + 0x1a8]
mov byte [edx], al
mov ecx, dword [esp + 0x1a4]
mov eax, dword [ebx]
jmp 0x413753
test ebp, ebp
js 0x412790
lea eax, [ebp + 1]
jmp 0x41337f
movzx edx, byte [esp + 0x1a8]
mov byte [eax], dl
mov eax, dword [esi]
movd xmm0, dword [esp + 0x1a4]
jmp 0x41396e
movzx eax, byte [esp + 0x1c4]
mov byte [edx], al
mov ecx, dword [esp + 0x1c0]
mov eax, dword [esi + 0x1c]
jmp 0x413a91
movzx eax, byte [esp + 0x1dc]
mov byte [edx], al
mov ecx, dword [esp + 0x1d8]
mov eax, dword [esi + 0x34]
jmp 0x4139e1
mov edx, dword [esp + 0xfc]
lea ecx, [edx + 1]
cmp ecx, 4
jae 0x414104
test ecx, ecx
je 0x412687
movzx eax, byte [esp + 0x100]
mov byte [esp + 0x1c4], al
test cl, 2
je 0x412687
movzx eax, word [esp + ecx + 0xfe]
mov word [esp + ecx + 0x1c2], ax
jmp 0x412687
mov edx, dword [esp + 0xfc]
lea edi, [edx + 1]
mov dword [esp + 0x20], edi
cmp edi, 4
jae 0x414148
test edi, edi
je 0x4119ae
movzx ecx, byte [esp + 0x100]
and edi, 2
mov byte [eax], cl
je 0x4119ae
mov ecx, dword [esp + 0x20]
movzx edi, word [esp + ecx + 0xfe]
mov word [eax + ecx - 2], di
jmp 0x4119ae
mov ebx, eax
mov eax, dword [eax + 0xc]
mov edx, dword [ebx + 8]
jmp 0x411eaf
mov ebp, 0xf
jmp 0x413096
mov ecx, dword [ecx]
lea edx, [ebx + 0x20]
jmp 0x413212
movzx edx, byte [edx]
mov byte [eax], dl
mov eax, dword [esi - 0x28]
jmp 0x4130a6
jne 0x41117a
mov eax, dword [eax]
mov dword [edi], eax
jmp 0x41117a
jne 0x410bcf
mov ecx, dword [edi]
mov dword [eax], ecx
jmp 0x410bcf
je 0x4140f5
add eax, esi
jmp 0x410bf9
mov edx, dword [edx]
mov edi, dword [esp + 0x1c]
add eax, esi
mov dword [edi], edx
jmp 0x410bf9
mov edi, dword [esp + ecx + 0xfc]
mov dword [esp + ecx + 0x1c0], edi
cmp edx, 4
jb 0x412687
mov dword [esp + 0x3c], edx
mov edi, edx
xor ecx, ecx
mov dword [esp + 0x38], esi
mov esi, dword [esp + 0x20]
and edi, 0xfffffffc
mov edx, dword [eax + ecx]
mov dword [esi + ecx], edx
add ecx, 4
cmp ecx, edi
jb 0x41412e
mov esi, dword [esp + 0x38]
mov edx, dword [esp + 0x3c]
jmp 0x412687
mov edi, dword [esp + 0x100]
mov dword [eax], edi
mov ecx, dword [esp + 0x20]
mov edi, dword [esp + ecx + 0xfc]
mov dword [eax + ecx - 4], edi
lea edi, [ebx - 0x14]
mov ecx, ebp
and edi, 0xfffffffc
sub eax, edi
sub ecx, eax
mov dword [esp + 0x24], ecx
mov ecx, dword [esp + 0x20]
add ecx, eax
and ecx, 0xfffffffc
cmp ecx, 4
jb 0x4119ae
mov dword [esp + 0x28], edx
and ecx, 0xfffffffc
xor eax, eax
mov dword [esp + 0x20], esi
mov esi, dword [esp + 0x24]
mov edx, dword [esi + eax]
mov dword [edi + eax], edx
add eax, 4
cmp eax, ecx
jb 0x414193
mov esi, dword [esp + 0x20]
mov edx, dword [esp + 0x28]
jmp 0x4119ae
mov eax, dword [esp + 0x1a8]
lea edi, [edx + 4]
and edi, 0xfffffffc
mov dword [edx], eax
mov eax, dword [esp + ecx + 0x1a4]
mov dword [edx + ecx - 4], eax
mov ecx, dword [esp + 0x2c]
sub edx, edi
sub ecx, edx
add edx, esi
and edx, 0xfffffffc
cmp edx, 4
jb 0x413746
and edx, 0xfffffffc
xor eax, eax
mov esi, dword [ecx + eax]
mov dword [edi + eax], esi
add eax, 4
cmp eax, edx
jb 0x4141e2
jmp 0x413746
mov eax, dword [esp + 0x1c4]
lea esi, [edx + 4]
and esi, 0xfffffffc
mov dword [edx], eax
mov eax, dword [esp + ecx + 0x1c0]
mov dword [edx + ecx - 4], eax
mov ecx, dword [esp + 0x1c]
sub edx, esi
sub ecx, edx
add edx, edi
and edx, 0xfffffffc
cmp edx, 4
jb 0x4136e3
and edx, 0xfffffffc
xor eax, eax
mov edi, dword [ecx + eax]
mov dword [esi + eax], edi
add eax, 4
cmp eax, edx
jb 0x414229
jmp 0x4136e3
mov eax, dword [esp + 0x1dc]
lea esi, [edx + 4]
and esi, 0xfffffffc
mov dword [edx], eax
mov edi, dword [esp + 0x30]
mov eax, dword [esp + edi + 0x1d8]
mov dword [edx + edi - 4], eax
mov ecx, dword [esp + 0x28]
sub edx, esi
sub ecx, edx
add edx, edi
and edx, 0xfffffffc
cmp edx, 4
jb 0x413677
and edx, 0xfffffffc
xor eax, eax
mov edi, dword [ecx + eax]
mov dword [esi + eax], edi
add eax, 4
cmp eax, edx
jb 0x414274
jmp 0x413677
jne 0x411b62
mov eax, dword [eax]
mov dword [edi], eax
jmp 0x411b62
jne 0x4140ee
mov edx, dword [edi]
mov dword [eax], edx
add eax, esi
jmp 0x410bf9
mov eax, dword [esp + 0x1c4]
mov dword [edx], eax
mov eax, dword [esp + ecx + 0x1c0]
mov dword [edx + ecx - 4], eax
lea eax, [edx + 4]
mov edi, dword [esp + 0x20]
and eax, 0xfffffffc
sub edx, eax
sub edi, edx
add edx, ecx
and edx, 0xfffffffc
cmp edx, 4
jb 0x413a83
mov ecx, edx
xor edx, edx
and ecx, 0xfffffffc
mov ebp, dword [edi + edx]
mov dword [eax + edx], ebp
add edx, 4
cmp edx, ecx
jb 0x4142dd
jmp 0x413a83
mov eax, dword [esp + 0x1dc]
mov dword [edx], eax
mov eax, dword [esp + ecx + 0x1d8]
mov dword [edx + ecx - 4], eax
lea eax, [edx + 4]
mov edi, dword [esp + 0x24]
and eax, 0xfffffffc
sub edx, eax
sub edi, edx
add edx, ecx
and edx, 0xfffffffc
cmp edx, 4
jb 0x4139d3
mov ecx, edx
xor edx, edx
and ecx, 0xfffffffc
mov ebp, dword [edi + edx]
mov dword [eax + edx], ebp
add edx, 4
cmp edx, ecx
jb 0x414326
jmp 0x4139d3
test esi, esi
jns 0x412790
jmp 0x413c7c
movzx eax, byte [esp + 0x1dc]
mov byte [edi], al
mov edx, dword [esp + 0x1d8]
mov eax, dword [ebx + 0x34]
jmp 0x413bb8
movzx edx, byte [esp + 0x1a8]
mov byte [eax], dl
mov eax, dword [ebx]
movd xmm0, dword [esp + 0x1a4]
jmp 0x413afa
movzx eax, byte [esp + 0x1c4]
mov byte [esi], al
mov edx, dword [esp + 0x1c0]
mov eax, dword [ebx + 0x1c]
jmp 0x413c21
mov eax, dword [esp + 0x1dc]
mov dword [edi], eax
mov ecx, dword [esp + 0x30]
mov eax, dword [esp + ecx + 0x1d8]
mov dword [edi + ecx - 4], eax
lea eax, [edi + 4]
mov esi, dword [esp + 0x28]
and eax, 0xfffffffc
sub edi, eax
mov edx, edi
sub esi, edi
add edx, ecx
and edx, 0xfffffffc
cmp edx, 4
jb 0x413ba4
mov ecx, edx
xor edx, edx
and ecx, 0xfffffffc
mov edi, dword [esi + edx]
mov dword [eax + edx], edi
add edx, 4
cmp edx, ecx
jb 0x4143ce
jmp 0x413ba4
mov eax, dword [esp + 0x1c4]
mov dword [esi], eax
mov eax, dword [esp + edx + 0x1c0]
mov dword [esi + edx - 4], eax
lea eax, [esi + 4]
and eax, 0xfffffffc
sub esi, eax
mov edx, esi
mov esi, dword [esp + 0x1c]
sub esi, edx
add edx, edi
and edx, 0xfffffffc
cmp edx, 4
jb 0x413c13
mov ecx, edx
xor edx, edx
and ecx, 0xfffffffc
mov edi, dword [esi + edx]
mov dword [eax + edx], edi
add edx, 4
cmp edx, ecx
jb 0x414419
jmp 0x413c13
mov eax, dword [ebx]
mov edx, edi
call fcn.0040d5e0
test al, al
je 0x414445
mov eax, dword [esp + 0x20]
cmp dword [ebx + 0xc], eax
je 0x412d69
add ebx, 0x10
mov eax, dword [ebx]
mov edx, edi
call fcn.0040d5e0
test al, al
je 0x414462
mov eax, dword [esp + 0x20]
cmp dword [ebx + 0xc], eax
je 0x412d69
add ebx, 0x10
jmp 0x412154
je 0x414473
add eax, ebp
jmp 0x413157
mov edx, dword [edx]
mov ecx, dword [esp + 0x20]
add eax, ebp
mov dword [ecx], edx
jmp 0x413157
jne 0x41312d
mov ecx, dword [edi]
mov dword [eax], ecx
jmp 0x41312d
mov eax, edx
jmp 0x412bd1
mov eax, edx
jmp 0x412dfd
mov eax, dword [edi]
mov dword [ecx], eax
jmp 0x41354f
jne 0x41446c
mov edx, dword [edi]
mov dword [eax], edx
add eax, ebp
jmp 0x413157
test ebp, ebp
js 0x413c7c
jmp 0x412790
mov eax, dword [edi]
mov dword [ecx], eax
jmp 0x413f07
movzx eax, word [esp + ecx + 0x1a6]
mov word [edx + ecx - 2], ax
mov edx, dword [ebx]
mov esi, dword [esp + 0x1a4]
jmp 0x41374f
mov dword [esp], 0x57be90
call fcn.00552550
movzx eax, word [esp + ecx + 0x1c2]
mov word [edx + ecx - 2], ax
mov edx, dword [ebx + 0x1c]
mov edi, dword [esp + 0x1c0]
jmp 0x4136ed
mov esi, dword [esp + 0x30]
movzx eax, word [esp + esi + 0x1da]
mov word [edx + esi - 2], ax
mov eax, dword [esp + 0x1d8]
mov edx, dword [ebx + 0x34]
mov dword [esp + 0x30], eax
jmp 0x413685
movzx eax, word [esp + ecx + 0x1da]
mov word [edx + ecx - 2], ax
mov ebp, dword [esp + 0x1d8]
mov edx, dword [esi + 0x34]
jmp 0x4139dd
movzx eax, word [esp + ecx + 0x1c2]
mov word [edx + ecx - 2], ax
mov ebp, dword [esp + 0x1c0]
mov edx, dword [esi + 0x1c]
jmp 0x413a8d
movzx eax, word [esp + edx + 0x1c2]
mov word [esi + edx - 2], ax
mov edi, dword [esp + 0x1c0]
mov esi, dword [ebx + 0x1c]
jmp 0x413c1d
mov esi, dword [esp + 0x30]
movzx eax, word [esp + esi + 0x1da]
mov word [edi + esi - 2], ax
mov eax, dword [esp + 0x1d8]
mov edi, dword [ebx + 0x34]
mov dword [esp + 0x30], eax
jmp 0x413bb2