Function at 0x40f3c0
Capabilities:
Check for software breakpoints
Enumerate pe sections
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x274
push ebp
mov ebp, ecx
mov eax, dword [ebp + 0x94]
lea edx, [esp + 0x20]
mov dword [esp + 0x20], eax
push edx
lea eax, [esp + 0x28]
lea ecx, [ebp + 0xd4a0]
push eax
call fcn.00401860
mov eax, dword [esp + 0x24]
cmp eax, dword [ebp + 0xd4a4]
je 0x4115f2
mov eax, dword [eax + 0x10]
test eax, eax
je 0x4115f2
mov ecx, dword [0x652e00]
push ebx
push esi
push edi
call fcn.004a21f0
mov eax, dword [ebp + 0xd46c]
test eax, eax
je 0x40fb1d
mov esi, dword [ebp + 0xd4a4]
mov eax, dword [esi]
cmp eax, esi
mov dword [esp + 0x34], eax
je 0x40fb1d
mov ebx, dword [eax + 0x10]
test ebx, ebx
je 0x40fb02
mov ecx, dword [ebp + 0x94]
lea edx, [esp + 0x2c]
push edx
lea eax, [esp + 0x3c]
mov dword [esp + 0x30], ecx
push eax
lea ecx, [ebp + 0xd4a0]
call fcn.00401860
mov eax, dword [esp + 0x38]
cmp eax, esi
jne 0x40f469
xor eax, eax
jmp 0x40f46c
mov eax, dword [eax + 0x10]
mov cl, byte [ebx + 0x1a]
cmp cl, byte [eax + 0x1a]
jne 0x40fb02
lea ecx, [esp + 0x6c]
push ecx
mov ecx, ebx
call fcn.00490230
mov edi, dword [eax]
lea edx, [esp + 0x5c]
add edi, 0x20
push edx
mov ecx, ebx
mov dword [esp + 0x18], edi
call fcn.00490230
mov esi, dword [eax + 4]
test esi, esi
jle 0x40f811
sub esi, 0xc
mov ecx, ebx
mov dword [esp + 0x10], esi
call fcn.0048f010
test ax, ax
je 0x40f4da
mov ecx, ebx
call fcn.0048f010
mov ecx, dword [0xec0e0c]
mov edx, dword [ecx]
movzx eax, ax
imul eax, eax, 0x3a0
sub esi, dword [eax + edx + 0x95a70]
mov dword [esp + 0x10], esi
push 0
mov ecx, ebx
mov edi, 0x4bb448
call fcn.0048eed0
mov esi, eax
mov ecx, 1
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x40f4fa
sub dword [esp + 0x10], 0x18
push 1
mov ecx, ebx
mov edi, 0x4bb448
call fcn.0048eed0
mov esi, eax
mov ecx, 1
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x40f51a
sub dword [esp + 0x10], 0xc
mov ecx, dword [ebx + 0x16]
mov eax, dword [ebp + 0x94]
cmp eax, ecx
mov ecx, ebx
je 0x40f657
call fcn.0048f010
test ax, ax
jne 0x40f5c6
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x14]
push 1
push 0
push 0xffffff
lea ecx, [ebx + 4]
push ecx
mov ecx, dword [0x652e00]
push esi
push edi
call fcn.004a2520
mov edx, dword [esp + 0x288]
push edx
sub edi, eax
push esi
sub edi, 0xc
push edi
mov ecx, ebx
call fcn.0048ec10
lea esi, [ebx + 0x1b0]
mov edi, 0x4bb448
mov ecx, 1
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x40f76d
mov edi, dword [esp + 0x10]
mov esi, dword [0x652e00]
push 1
push 9
push eax
sub edi, 0x18
push eax
mov ecx, ebx
mov dword [esp + 0x20], edi
call fcn.0048f020
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x298]
push eax
lea eax, [ebx + 0x1b0]
push eax
push edi
push ecx
push edx
jmp 0x40f766
mov ecx, ebx
mov edi, 0x4bb448
call fcn.0048f010
mov ecx, dword [0xec0e0c]
mov edx, dword [ecx]
movzx eax, ax
imul eax, eax, 0x3a0
lea esi, [eax + edx + 0x958c8]
xor eax, eax
push 1
mov ecx, 1
repe cmpsb byte [esi], byte es:[edi]
push eax
push 0xffffff
je 0x40f639
mov esi, dword [0x652e00]
mov ecx, ebx
call fcn.0048f010
mov edx, dword [0xec0e0c]
movzx ecx, ax
mov eax, dword [edx]
imul ecx, ecx, 0x3a0
mov edx, dword [esp + 0x1c]
lea ecx, [ecx + eax + 0x958c8]
mov eax, dword [esp + 0x20]
push ecx
push edx
push eax
mov ecx, esi
call fcn.004a2520
jmp 0x40f76d
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
lea ecx, [ebx + 4]
push ecx
mov ecx, dword [0x652e00]
push edx
push eax
call fcn.004a2520
jmp 0x40f76d
call fcn.0048f010
test ax, ax
jne 0x40f67a
mov edx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
push 1
push 0
push 0xff00
lea ecx, [ebx + 4]
push ecx
push edx
push eax
jmp 0x40f6f3
mov ecx, ebx
mov edi, 0x4bb448
call fcn.0048f010
mov edx, dword [0xec0e0c]
movzx ecx, ax
mov eax, dword [edx]
imul ecx, ecx, 0x3a0
lea esi, [ecx + eax + 0x958c8]
xor edx, edx
push 1
mov ecx, 1
repe cmpsb byte [esi], byte es:[edi]
push edx
push 0xff00
je 0x40f6e5
mov esi, dword [0x652e00]
mov ecx, ebx
call fcn.0048f010
mov ecx, dword [0xec0e0c]
mov edx, dword [ecx]
mov ecx, dword [esp + 0x1c]
movzx eax, ax
imul eax, eax, 0x3a0
lea eax, [eax + edx + 0x958c8]
mov edx, dword [esp + 0x20]
push eax
push ecx
push edx
mov ecx, esi
jmp 0x40f6f9
mov ecx, dword [esp + 0x1c]
mov edx, dword [esp + 0x20]
lea eax, [ebx + 4]
push eax
push ecx
push edx
mov ecx, dword [0x652e00]
call fcn.004a2520
mov ecx, dword [esp + 0x288]
mov edx, dword [esp + 0x10]
push ecx
mov ecx, dword [esp + 0x18]
sub ecx, eax
sub ecx, 0xc
push edx
push ecx
mov ecx, ebx
call fcn.0048ec10
lea esi, [ebx + 0x1b0]
mov edi, 0x4bb448
mov ecx, 1
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x40f76d
mov edi, dword [esp + 0x10]
mov esi, dword [0x652e00]
push 2
push 9
push edx
sub edi, 0x18
push edx
mov ecx, ebx
mov dword [esp + 0x20], edi
call fcn.0048f020
mov ecx, dword [esp + 0x298]
push eax
lea eax, [ebx + 0x1b0]
push eax
mov eax, dword [esp + 0x2c]
push edi
push eax
push ecx
mov ecx, esi
call fcn.004a2600
mov edx, dword [esp + 0x10]
mov ecx, dword [0x652e04]
sub edx, 0xc
add ecx, 0x22d28c
mov dword [esp + 0x10], edx
call fcn.0048bbb0
cmp ax, 0xfde8
je 0x40fb02
mov edx, dword [0x652e04]
xor edi, edi
add ebx, 4
mov dword [esp + 0x2c], ebx
mov esi, dword [esp + 0x2c]
movzx eax, di
imul eax, eax, 0x7c
lea eax, [eax + edx + 0x22d2e0]
mov bl, byte [eax]
mov cl, bl
cmp bl, byte [esi]
jne 0x40f7d7
test cl, cl
je 0x40f7d3
mov bl, byte [eax + 1]
mov cl, bl
cmp bl, byte [esi + 1]
jne 0x40f7d7
add eax, 2
add esi, 2
test cl, cl
jne 0x40f7b3
xor eax, eax
jmp 0x40f7dc
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x40f7eb
inc edi
cmp edi, 6
jl 0x40f7a2
jmp 0x40fb02
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x14]
push edi
push ecx
mov ecx, dword [esp + 0x290]
add eax, 0xffffffe0
push eax
push ecx
lea ecx, [edx + 0x22d28c]
call fcn.0048bcc0
jmp 0x40fb02
mov ecx, dword [0x652e04]
add esi, 0x40
add ecx, 0x22d28c
mov dword [esp + 0x30], 0
mov dword [esp + 0x10], esi
call fcn.0048bbb0
cmp ax, 0xfde8
je 0x40f8c1
xor ecx, ecx
lea ecx, [ecx]
mov eax, dword [0x652e04]
movzx edx, cx
imul edx, edx, 0x7c
lea edi, [ebx + 4]
lea esi, [edx + eax + 0x22d2e0]
mov dl, byte [esi]
mov al, dl
cmp dl, byte [edi]
jne 0x40f879
test al, al
je 0x40f875
mov dl, byte [esi + 1]
mov al, dl
cmp dl, byte [edi + 1]
jne 0x40f879
add esi, 2
add edi, 2
test al, al
jne 0x40f855
xor eax, eax
jmp 0x40f87e
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x40f88a
inc ecx
cmp ecx, 6
jl 0x40f840
jmp 0x40f8b9
mov eax, dword [esp + 0x10]
mov edx, dword [esp + 0x288]
push ecx
mov ecx, dword [esp + 0x18]
add ecx, 0xffffffe0
push eax
push ecx
mov ecx, dword [0x652e04]
push edx
add ecx, 0x22d28c
call fcn.0048bcc0
mov dword [esp + 0x30], 1
mov edi, dword [esp + 0x14]
mov esi, dword [esp + 0x10]
mov eax, dword [ebp + 0xe5e0]
test eax, eax
je 0x40f8d9
mov eax, dword [ebp + 0x94]
cmp eax, dword [ebp + 0x98]
je 0x40f8e1
mov eax, dword [esp + 0x30]
test eax, eax
je 0x40f8e8
add esi, 0xc
mov dword [esp + 0x10], esi
mov ecx, dword [ebp + 0x94]
cmp ecx, dword [ebp + 0x98]
mov ecx, ebx
je 0x40f9f4
call fcn.0048f010
test ax, ax
jne 0x40f963
mov esi, dword [esp + 0x10]
mov edi, dword [esp + 0x14]
mov ecx, dword [0x652e00]
push 1
push 0
push 0xffffff
lea edx, [ebx + 4]
push edx
push esi
push edi
call fcn.004a2520
mov ecx, dword [esp + 0x288]
push ecx
sub edi, eax
push esi
sub edi, 0xc
push edi
mov ecx, ebx
call fcn.0048ec10
lea esi, [ebx + 0x1b0]
mov edi, 0x4bb448
mov ecx, 1
xor edx, edx
mov dword [esp + 0x30], esi
repe cmpsb byte [esi], byte es:[edi]
je 0x40fb02
push 5
jmp 0x40facd
mov ecx, ebx
mov edi, 0x4bb448
call fcn.0048f010
mov edx, dword [0xec0e0c]
movzx ecx, ax
mov eax, dword [edx]
imul ecx, ecx, 0x3a0
lea esi, [ecx + eax + 0x958c8]
xor edx, edx
push 1
mov ecx, 1
repe cmpsb byte [esi], byte es:[edi]
push edx
push 0xffffff
je 0x40f9d6
mov esi, dword [0x652e00]
mov ecx, ebx
call fcn.0048f010
mov ecx, dword [0xec0e0c]
mov edx, dword [ecx]
mov ecx, dword [esp + 0x1c]
movzx eax, ax
imul eax, eax, 0x3a0
lea eax, [eax + edx + 0x958c8]
mov edx, dword [esp + 0x20]
push eax
push ecx
push edx
mov ecx, esi
call fcn.004a2520
jmp 0x40fb02
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
add ebx, 4
push ebx
push eax
push ecx
mov ecx, dword [0x652e00]
call fcn.004a2520
jmp 0x40fb02
call fcn.0048f010
test ax, ax
jne 0x40fa0f
push 1
push 0
push 0xffffff
lea edx, [ebx + 4]
push edx
push esi
push edi
jmp 0x40fa88
mov ecx, ebx
mov edi, 0x4bb448
call fcn.0048f010
mov ecx, dword [0xec0e0c]
mov edx, dword [ecx]
movzx eax, ax
imul eax, eax, 0x3a0
lea esi, [eax + edx + 0x958c8]
xor eax, eax
push 1
mov ecx, 1
repe cmpsb byte [esi], byte es:[edi]
push eax
push 0xffffff
je 0x40fa7a
mov esi, dword [0x652e00]
mov ecx, ebx
call fcn.0048f010
mov edx, dword [0xec0e0c]
movzx ecx, ax
mov eax, dword [edx]
imul ecx, ecx, 0x3a0
mov edx, dword [esp + 0x1c]
lea ecx, [ecx + eax + 0x958c8]
mov eax, dword [esp + 0x20]
push ecx
push edx
push eax
mov ecx, esi
jmp 0x40fa8e
mov edx, dword [esp + 0x1c]
mov eax, dword [esp + 0x20]
lea ecx, [ebx + 4]
push ecx
push edx
push eax
mov ecx, dword [0x652e00]
call fcn.004a2520
mov ecx, dword [esp + 0x288]
mov edx, dword [esp + 0x10]
push ecx
mov ecx, dword [esp + 0x18]
sub ecx, eax
sub ecx, 0xc
push edx
push ecx
mov ecx, ebx
call fcn.0048ec10
lea esi, [ebx + 0x1b0]
mov edi, 0x4bb448
mov ecx, 1
xor edx, edx
mov dword [esp + 0x30], esi
repe cmpsb byte [esi], byte es:[edi]
je 0x40fb02
push 6
mov esi, dword [0x652e00]
push 9
push 0
mov ecx, ebx
push 0
call fcn.0048f020
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x24]
push eax
mov eax, dword [esp + 0x44]
push eax
mov eax, dword [esp + 0x2a0]
add ecx, 0x18
push ecx
push edx
mov ecx, esi
push eax
call fcn.004a2600
lea ecx, [esp + 0x34]
call fcn.0040c5b0
mov esi, dword [ebp + 0xd4a4]
mov eax, dword [esp + 0x34]
cmp eax, esi
jne 0x40f433
movzx eax, byte [ebp + 0xa1]
dec eax
mov dword [esp + 0x6c], 0x4bb448
mov dword [esp + 0x70], 0x4bb900
mov dword [esp + 0x74], 0x4bb8f8
mov dword [esp + 0x78], 0x4bb8f0
jne 0x40fc7f
mov ebx, dword [ebp + 0x9d]
cmp ebx, 0xffff
je 0x40fc7f
mov esi, dword [ebp + ebx*4 + 0xd63c]
test esi, esi
je 0x40fc7f
mov ecx, ebp
call fcn.00401910
mov cl, byte [esi + 0x1a]
cmp cl, byte [eax + 0x1a]
jne 0x40fc7f
mov eax, esi
mov edi, 0x4bb448
lea esi, [eax + 4]
mov ecx, 1
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x40fc7f
mov ecx, eax
call fcn.00482360
mov ecx, dword [ebp + ebx*4 + 0xd63c]
mov byte [esp + 0x2b], al
lea eax, [esp + 0x5c]
push eax
call fcn.00482e50
mov esi, dword [eax]
lea ecx, [esp + 0x4c]
push ecx
mov ecx, dword [ebp + ebx*4 + 0xd63c]
add esi, 0x20
call fcn.00482e50
mov edi, dword [eax + 4]
mov eax, dword [ebp + ebx*4 + 0xd63c]
movzx edx, byte [eax + 0x15]
push edx
add eax, 4
push eax
movzx eax, byte [esp + 0x33]
mov ecx, dword [esp + eax*4 + 0x74]
push ecx
lea edx, [esp + 0x190]
push str._s_s_Lv._d
push edx
call fcn.004aa255
add esp, 0x14
test edi, edi
jle 0x40fc29
mov eax, dword [ebp + ebx*4 + 0xd63c]
movzx ecx, word [eax + 0x2f]
mov edx, dword [0xec0e0c]
imul ecx, ecx, 0x3a0
mov eax, dword [edx]
mov edx, 0xfffffff4
sub edx, dword [ecx + eax + 0x95a70]
add edi, edx
jmp 0x40fc2c
add edi, 0xc
mov eax, dword [ebp + ebx*4 + 0xd63c]
cmp byte [eax + 0x2e], 3
je 0x40fc63
mov edx, dword [esp + 0x288]
push 3
push 9
push 0
push 0
push 0xff
lea ecx, [esp + 0x198]
push ecx
mov ecx, dword [0x652e00]
push edi
push esi
push edx
call fcn.004a2600
lea ecx, [edi - 0xa]
push ecx
mov ecx, dword [ebp + ebx*4 + 0xd63c]
lea eax, [esi - 0x20]
push eax
mov eax, dword [esp + 0x290]
push eax
call fcn.00481fd0
movzx eax, byte [ebp + 0x9c]
dec eax
je 0x40ffbd
sub eax, 3
je 0x40feff
dec eax
jne 0x410105
mov eax, dword [ebp + 0xd46c]
test eax, eax
je 0x410105
mov esi, dword [ebp + 0x98]
cmp esi, 0xffff
je 0x410105
push esi
mov ecx, ebp
call fcn.004018d0
test eax, eax
je 0x410105
push esi
mov ecx, ebp
call fcn.004018d0
mov ecx, ebp
mov edi, eax
call fcn.00401910
mov cl, byte [edi + 0x1a]
cmp cl, byte [eax + 0x1a]
jne 0x410105
push esi
mov ecx, ebp
call fcn.004018d0
cmp word [eax + 0x203], 0xff
je 0x410105
lea edx, [esp + 0x5c]
push edx
push esi
mov ecx, ebp
call fcn.004018d0
mov ecx, eax
add ecx, 0x1d4
call fcn.00490230
mov esi, dword [eax]
mov ecx, dword [ebp + 0x98]
lea eax, [esp + 0x4c]
push eax
push ecx
mov ecx, ebp
add esi, 0x20
call fcn.004018d0
mov ecx, eax
add ecx, 0x1d4
call fcn.00490230
mov edi, dword [eax + 4]
mov ebx, dword [ebp + 0x98]
xor edx, edx
mov dword [esp + 0x111], edx
mov dword [esp + 0x115], edx
mov dword [esp + 0x119], edx
mov dword [esp + 0x11d], edx
mov dword [esp + 0x121], edx
mov dword [esp + 0x125], edx
mov dword [esp + 0x129], edx
mov dword [esp + 0x12d], edx
push ebx
mov ecx, ebp
mov byte [esp + 0x114], 0
mov byte [esp + 0x135], dl
call fcn.004018d0
movzx eax, word [eax + 0x203]
mov ecx, dword [0xec0e0c]
imul eax, eax, 0x3a0
mov edx, dword [ecx]
lea eax, [eax + edx + 0xcd488]
push eax
push ebx
mov ecx, ebp
call fcn.004018d0
add eax, 4
push eax
lea ecx, [esp + 0x118]
push str._s:_s
push ecx
call dword [sym.imp.USER32.dll_wsprintfA]
add esp, 0x10
test edi, edi
jle 0x40fe70
mov edx, dword [ebp + 0x94]
mov eax, dword [ebp + 0x98]
sub edi, 0xc
cmp edx, eax
je 0x40fe23
mov ecx, dword [esp + 0x288]
push 1
push 9
push 0
push 0
push 0xffffff
lea eax, [esp + 0x124]
push eax
push edi
push esi
push ecx
mov ecx, dword [0x652e00]
call fcn.004a2600
jmp 0x410105
mov ebx, dword [esp + 0x288]
mov ecx, dword [0x652e00]
push 2
push 9
push 0
push 0
push 0xff00
lea edx, [esp + 0x124]
push edx
push edi
push esi
push ebx
call fcn.004a2600
mov al, byte [ebp + 0xd48e]
test al, al
je 0x410105
add edi, 0xfffffff0
push edi
add esi, 0xffffffe0
push esi
push ebx
mov ecx, ebp
call fcn.0040c370
jmp 0x410105
mov eax, dword [ebp + 0x94]
mov ecx, dword [ebp + 0x98]
add edi, 0x40
cmp eax, ecx
je 0x40feb2
mov edx, dword [esp + 0x288]
push 5
push 9
push 0
push 0
push 0xffffff
lea ecx, [esp + 0x124]
push ecx
mov ecx, dword [0x652e00]
push edi
push esi
push edx
call fcn.004a2600
jmp 0x410105
mov ebx, dword [esp + 0x288]
mov ecx, dword [0x652e00]
push 6
push 9
push 0
push 0
push 0xff00
lea eax, [esp + 0x124]
push eax
push edi
push esi
push ebx
call fcn.004a2600
mov al, byte [ebp + 0xd48e]
test al, al
je 0x410105
add edi, 0x10
push edi
add esi, 0xffffffe0
push esi
push ebx
mov ecx, ebp
call fcn.0040c370
jmp 0x410105
mov eax, dword [ebp + 0xd470]
test eax, eax
je 0x410105
mov eax, dword [ebp + 0x98]
cmp eax, 0xffff
je 0x410105
mov ebx, dword [ebp + eax*4 + 0xd4ac]
test ebx, ebx
je 0x410105
mov ecx, ebp
call fcn.00401910
mov cl, byte [ebx + 0x1a]
cmp cl, byte [eax + 0x1a]
jne 0x410105
mov edi, 0x4bb448
lea esi, [ebx + 4]
mov ecx, 1
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x410105
lea eax, [esp + 0x18]
push eax
mov ecx, ebx
call fcn.00490230
mov edx, dword [ebp + 0x98]
mov esi, dword [eax]
lea ecx, [esp + 0x154]
push ecx
mov ecx, dword [ebp + edx*4 + 0xd4ac]
add esi, 0x20
call fcn.00490230
mov eax, dword [eax + 4]
test eax, eax
jle 0x40ff8e
sub eax, 0xc
jmp 0x40ff91
add eax, 0x40
mov ecx, dword [ebp + 0x98]
mov edx, dword [ebp + ecx*4 + 0xd4ac]
mov ecx, dword [0x652e00]
push 1
push 0
push 0xffff
add edx, 4
push edx
push eax
push esi
call fcn.004a2520
jmp 0x410105
mov eax, dword [ebp + 0xd470]
test eax, eax
je 0x410105
mov ebx, dword [ebp + 0x98]
cmp ebx, 0xffff
je 0x410105
mov esi, dword [ebp + ebx*4 + 0xd63c]
test esi, esi
je 0x410105
mov ecx, ebp
call fcn.00401910
mov cl, byte [esi + 0x1a]
cmp cl, byte [eax + 0x1a]
jne 0x410105
mov eax, esi
mov edi, 0x4bb448
lea esi, [eax + 4]
mov ecx, 1
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x410105
mov ecx, eax
call fcn.00482360
mov ecx, dword [ebp + ebx*4 + 0xd63c]
mov byte [esp + 0x2b], al
lea eax, [esp + 0x134]
push eax
call fcn.00482e50
mov esi, dword [eax]
lea ecx, [esp + 0x144]
push ecx
mov ecx, dword [ebp + ebx*4 + 0xd63c]
add esi, 0x20
call fcn.00482e50
mov edi, dword [eax + 4]
mov eax, dword [ebp + ebx*4 + 0xd63c]
movzx edx, byte [eax + 0x15]
push edx
add eax, 4
push eax
movzx eax, byte [esp + 0x33]
mov ecx, dword [esp + eax*4 + 0x74]
push ecx
lea edx, [esp + 0x190]
push str._s_s_Lv._d
push edx
call fcn.004aa255
add esp, 0x14
test edi, edi
jle 0x4100af
mov eax, dword [ebp + ebx*4 + 0xd63c]
movzx ecx, word [eax + 0x2f]
mov edx, dword [0xec0e0c]
imul ecx, ecx, 0x3a0
mov eax, dword [edx]
mov edx, 0xfffffff4
sub edx, dword [ecx + eax + 0x95a70]
add edi, edx
jmp 0x4100b2
add edi, 0xc
mov eax, dword [ebp + ebx*4 + 0xd63c]
cmp byte [eax + 0x2e], 3
je 0x4100e9
mov edx, dword [esp + 0x288]
push 3
push 9
push 0
push 0
push 0xff
lea ecx, [esp + 0x198]
push ecx
mov ecx, dword [0x652e00]
push edi
push esi
push edx
call fcn.004a2600
lea ecx, [edi - 0xa]
push ecx
mov ecx, dword [ebp + ebx*4 + 0xd63c]
lea eax, [esi - 0x20]
push eax
mov eax, dword [esp + 0x290]
push eax
call fcn.00481fd0
lea ecx, [ebp + 0xe5e8]
mov dword [esp + 0x30], 0xa4ff
mov dword [esp + 0x14], ecx
jmp 0x410120
mov ebx, dword [esp + 0x14]
mov ecx, ebx
call fcn.0040bd60
test eax, eax
je 0x410310
xor ecx, ecx
lea edi, [ebx + 0x28]
mov dword [esp + 0x34], ecx
mov dword [esp + 0x10], edi
cmp dword [edi], 0
je 0x4102f3
movzx edx, word [ebx + 4]
lea eax, [ebp + edx*4 + 0xd63c]
cmp dword [eax], 0
je 0x4102ec
mov edx, dword [esp + 0x30]
add ecx, edx
lea ecx, [ebp + ecx*2 - 0x6400]
mov dword [esp + 0x2c], ecx
mov cx, word [ecx]
test cx, cx
je 0x41029f
cmp cx, 0xffff
je 0x4102f3
lea ecx, [esp + 0x144]
push ecx
mov ecx, dword [eax]
call fcn.00482e50
mov esi, dword [eax]
movzx eax, word [ebx + 4]
mov ecx, dword [ebp + eax*4 + 0xd63c]
lea edx, [esp + 0x134]
push edx
add esi, 0x20
call fcn.00482e50
mov ecx, dword [eax + 4]
mov edx, dword [esp + 0x10]
mov eax, dword [edx]
lea edi, [ecx + eax - 0x28]
mov ecx, dword [esp + 0x34]
mov al, byte [ebx + ecx + 6]
test al, al
jne 0x410224
movzx edx, word [ebx + 4]
mov eax, dword [ebp + edx*4 + 0xd63c]
mov ax, word [eax + 0x2f]
cmp ax, 0xca
je 0x410284
cmp ax, 0xcb
je 0x410284
cmp ax, 0xcc
je 0x410284
cmp ax, 0xcd
je 0x410284
mov ecx, dword [esp + 0x2c]
movzx edx, word [ecx]
mov eax, dword [esp + 0x288]
push 0xfffffffffffffffa
push 0xb
push edx
push eax
push edi
push esi
lea ecx, [ebp + 4]
call fcn.0040bc50
jmp 0x4102f3
movzx ecx, word [ebx + 4]
mov edx, dword [ebp + ecx*4 + 0xd63c]
mov ax, word [edx + 0x2f]
cmp ax, 0xca
je 0x410284
cmp ax, 0xcb
je 0x410284
cmp ax, 0xcc
je 0x410284
cmp ax, 0xcd
je 0x410284
mov eax, dword [esp + 0x2c]
movzx ecx, word [eax]
mov edx, dword [esp + 0x288]
push 0xfffffffffffffffa
push 0xb
push ecx
push edx
push edi
push esi
lea ecx, [ebp + 4]
call fcn.0040bc50
mov ecx, dword [ebp + 0x58]
mov eax, dword [esp + 0x288]
push 0xb
sub edi, ecx
push edi
push esi
push eax
lea ecx, [ebp + 0x50]
call fcn.0040bbf0
jmp 0x4102f3
mov eax, dword [ebp + 0x3c]
test eax, eax
je 0x4102f3
mov ecx, dword [esp + 0x288]
push 0xb
push eax
push edi
mov edx, esi
call fcn.0044f860
jmp 0x4102f3
lea ecx, [esp + 0x154]
push ecx
mov ecx, dword [eax]
call fcn.00482e50
mov esi, dword [eax]
movzx eax, word [ebx + 4]
mov ecx, dword [ebp + eax*4 + 0xd63c]
lea edx, [esp + 0x6c]
push edx
add esi, 0x20
call fcn.00482e50
mov ecx, dword [eax + 4]
mov eax, dword [ebp + 0x4c]
test eax, eax
mov edx, dword [edi]
lea ecx, [ecx + edx - 0x28]
je 0x4102f3
push 0xb
push eax
push ecx
mov ecx, dword [esp + 0x294]
mov edx, esi
call fcn.0044f860
jmp 0x4102f3
mov ecx, ebx
call fcn.0040bd10
mov ecx, dword [esp + 0x34]
mov edi, dword [esp + 0x10]
inc ecx
add edi, 4
cmp ecx, 8
mov dword [esp + 0x34], ecx
mov dword [esp + 0x10], edi
jl 0x410140
lea ecx, [ebx + 0x6400]
call fcn.0040bd60
test eax, eax
je 0x410620
mov eax, dword [esp + 0x14]
add eax, 0x6428
mov dword [esp + 0x34], 0
mov dword [esp + 0x10], eax
jmp 0x410340
mov ecx, dword [esp + 0x10]
cmp dword [ecx], 0
je 0x410603
mov edx, dword [esp + 0x14]
movzx esi, word [edx + 0x6404]
lea eax, [esp + 0x38]
push eax
lea ecx, [esp + 0x40]
push ecx
lea edi, [ebp + 0xd4a0]
mov ecx, edi
mov dword [esp + 0x40], esi
call fcn.00401860
mov ebx, dword [ebp + 0xd4a4]
mov eax, dword [esp + 0x3c]
cmp eax, ebx
je 0x4105f4
mov ecx, dword [eax + 0x10]
test ecx, ecx
je 0x4105f4
mov eax, dword [esp + 0x30]
mov edx, dword [esp + 0x34]
add edx, eax
lea eax, [ebp + edx*2]
mov dword [esp + 0x2c], eax
mov ax, word [eax]
test ax, ax
je 0x410556
cmp ax, 0xffff
je 0x410603
lea ecx, [esp + 0x38]
push ecx
lea edx, [esp + 0x4c]
push edx
mov ecx, edi
mov dword [esp + 0x40], esi
call fcn.00401860
mov eax, dword [esp + 0x48]
cmp eax, ebx
jne 0x4103d9
xor ecx, ecx
jmp 0x4103dc
mov ecx, dword [eax + 0x10]
lea eax, [esp + 0x5c]
push eax
call fcn.00490230
mov ebx, dword [esp + 0x14]
movzx ecx, word [ebx + 0x6404]
mov esi, dword [eax]
lea edx, [esp + 0x38]
push edx
lea eax, [esp + 0x44]
mov dword [esp + 0x3c], ecx
push eax
mov ecx, edi
add esi, 0x20
call fcn.00401860
mov eax, dword [esp + 0x40]
cmp eax, dword [ebp + 0xd4a4]
jne 0x41041b
xor ecx, ecx
jmp 0x41041e
mov ecx, dword [eax + 0x10]
lea edx, [esp + 0x4c]
push edx
call fcn.00490230
mov ecx, dword [esp + 0x10]
mov eax, dword [eax + 4]
mov edx, dword [ecx]
lea edi, [eax + edx - 0x28]
mov eax, dword [esp + 0x34]
mov cl, byte [ebx + eax + 0x6406]
test cl, cl
mov cl, byte [ebx + eax + 0x640e]
mov eax, dword [ebp + 0x3c]
jne 0x4104b1
test cl, cl
jne 0x410471
test eax, eax
je 0x410603
mov ecx, dword [esp + 0x288]
push 0xb
push eax
push edi
mov edx, esi
call fcn.0044f860
jmp 0x410603
test eax, eax
je 0x410487
mov ecx, dword [esp + 0x288]
push 0xb
push eax
push edi
mov edx, esi
call fcn.0044f860
mov eax, dword [esp + 0x2c]
movzx ecx, word [eax]
mov edx, dword [esp + 0x288]
push 0xfffffffffffffffa
push 1
push 0xb
push ecx
mov ecx, dword [ebp + 0x34]
push edx
sub esi, ecx
push edi
push esi
lea ecx, [ebp + 4]
call fcn.00407bc0
jmp 0x410603
test cl, cl
jne 0x4104f2
test eax, eax
je 0x4104cb
mov ecx, dword [esp + 0x288]
push 0xb
push eax
push edi
mov edx, esi
call fcn.0044f860
mov eax, dword [ebp + 0x5c]
test eax, eax
je 0x410603
mov ecx, dword [ebp + 0x58]
push 0xb
sub edi, ecx
mov ecx, dword [esp + 0x28c]
push eax
push edi
mov edx, esi
call fcn.0044f860
jmp 0x410603
test eax, eax
je 0x410508
mov ecx, dword [esp + 0x288]
push 0xb
push eax
push edi
mov edx, esi
call fcn.0044f860
mov eax, dword [esp + 0x2c]
movzx ecx, word [eax]
mov edx, dword [esp + 0x288]
mov ebx, dword [ebp + 0x34]
push 0xfffffffffffffffa
push 1
push 0xb
push ecx
push edx
mov eax, esi
push edi
sub eax, ebx
push eax
lea ecx, [ebp + 4]
call fcn.00407bc0
mov eax, dword [ebp + 0x5c]
test eax, eax
je 0x410603
mov ecx, dword [ebp + 0x58]
push 0xb
sub edi, ecx
mov ecx, dword [esp + 0x28c]
push eax
push edi
mov edx, esi
call fcn.0044f860
jmp 0x410603
lea ecx, [esp + 0x38]
push ecx
lea edx, [esp + 0x48]
push edx
mov ecx, edi
mov dword [esp + 0x40], esi
call fcn.00401860
mov eax, dword [esp + 0x44]
cmp eax, ebx
jne 0x410577
xor ecx, ecx
jmp 0x41057a
mov ecx, dword [eax + 0x10]
lea eax, [esp + 0x164]
push eax
call fcn.00490230
mov esi, dword [eax]
mov ecx, dword [esp + 0x14]
movzx edx, word [ecx + 0x6404]
lea eax, [esp + 0x38]
push eax
lea ecx, [esp + 0x1c]
push ecx
mov ecx, edi
add esi, 0x20
mov dword [esp + 0x40], edx
call fcn.00401860
mov eax, dword [esp + 0x18]
cmp eax, dword [ebp + 0xd4a4]
jne 0x4105bc
xor ecx, ecx
jmp 0x4105bf
mov ecx, dword [eax + 0x10]
lea edx, [esp + 0x174]
push edx
call fcn.00490230
mov ecx, dword [esp + 0x10]
mov eax, dword [eax + 4]
mov edx, dword [ecx]
lea ecx, [eax + edx - 0x28]
mov eax, dword [ebp + 0x4c]
test eax, eax
je 0x410603
push 0xb
push eax
push ecx
mov ecx, dword [esp + 0x294]
mov edx, esi
call fcn.0044f860
jmp 0x410603
mov ecx, dword [esp + 0x14]
add ecx, 0x6400
call fcn.0040bd10
mov eax, dword [esp + 0x34]
mov edx, dword [esp + 0x10]
inc eax
add edx, 4
cmp eax, 8
mov dword [esp + 0x34], eax
mov dword [esp + 0x10], edx
jl 0x410340
mov eax, dword [esp + 0x30]
mov esi, dword [esp + 0x14]
add eax, 0x64
add esi, 0xc8
cmp eax, 0xd6ff
mov dword [esp + 0x14], esi
mov dword [esp + 0x30], eax
jl 0x410120
mov eax, dword [ebp + 0x6ae4]
test eax, eax
mov dword [esp + 0x34], 0
jle 0x4115cb
lea ebx, [ebx]
mov eax, dword [esp + 0x34]
lea ecx, [ebp + eax*8]
add ecx, eax
movzx eax, byte [ecx + 0x170]
sub eax, 2
mov dword [esp + 0x10], ecx
je 0x41077d
sub eax, 2
jne 0x4115b4
mov esi, dword [ecx + 0x16c]
mov ebx, dword [ebp + esi*4 + 0xd4ac]
test ebx, ebx
je 0x4115b4
mov edx, dword [ebp + 0x94]
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x48]
push ecx
lea ecx, [ebp + 0xd4a0]
mov dword [esp + 0x20], edx
call fcn.00401860
mov eax, dword [esp + 0x44]
cmp eax, dword [ebp + 0xd4a4]
jne 0x4106cb
xor eax, eax
jmp 0x4106ce
mov eax, dword [eax + 0x10]
mov dl, byte [eax + 0x1a]
cmp dl, byte [ebx + 0x1a]
jne 0x4115b4
cmp byte [ebx + 0x2e], 3
je 0x4115b4
cmp byte [ebp + 0x9c], 4
jne 0x4106f9
cmp dword [ebp + 0x98], esi
je 0x4115b4
mov edi, 0x4bb448
lea esi, [ebx + 4]
mov ecx, 1
xor eax, eax
repe cmpsb byte [esi], byte es:[edi]
je 0x4115b4
lea ecx, [esp + 0x174]
push ecx
mov ecx, ebx
call fcn.00490230
mov esi, dword [eax]
mov edi, dword [esp + 0x10]
mov eax, dword [edi + 0x16c]
mov ecx, dword [ebp + eax*4 + 0xd4ac]
lea edx, [esp + 0x164]
push edx
add esi, 0x20
call fcn.00490230
mov eax, dword [eax + 4]
test eax, eax
jle 0x41074e
sub eax, 0xc
jmp 0x410751
add eax, 0x40
mov ecx, dword [edi + 0x16c]
mov edx, dword [ebp + ecx*4 + 0xd4ac]
mov ecx, dword [0x652e00]
push 1
push 0
push 0xffff
add edx, 4
push edx
push eax
push esi
call fcn.004a2520
jmp 0x4115b4
mov eax, dword [esp + 0x10]
mov ebx, dword [eax + 0x16c]
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0x44]
lea edi, [ebp + 0xd4a0]
push edx
mov ecx, edi
mov dword [esp + 0x20], ebx
call fcn.00401860
mov esi, dword [ebp + 0xd4a4]
mov eax, dword [esp + 0x40]
cmp eax, esi
je 0x4115b4
mov ecx, dword [eax + 0x10]
test ecx, ecx
je 0x4115b4
mov eax, dword [ebp + 0x94]
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0x4c]
push edx
mov ecx, edi
mov dword [esp + 0x20], eax
call fcn.00401860
mov eax, dword [esp + 0x48]
cmp eax, esi
jne 0x4107e6
xor eax, eax
jmp 0x4107e9
mov eax, dword [eax + 0x10]
mov al, byte [eax + 0x1a]
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0x40]
push edx
mov ecx, edi
mov byte [esp + 0x33], al
mov dword [esp + 0x20], ebx
call fcn.00401860
mov eax, dword [esp + 0x3c]
cmp eax, esi
jne 0x410811
xor eax, eax
jmp 0x410814
mov eax, dword [eax + 0x10]
mov cl, byte [esp + 0x2b]
cmp cl, byte [eax + 0x1a]
jne 0x4115b4
lea edx, [esp + 0x18]
push edx
lea eax, [esp + 0x3c]
push eax
mov ecx, edi
mov dword [esp + 0x20], ebx
call fcn.00401860
mov eax, dword [esp + 0x38]
cmp eax, esi
jne 0x410842
xor eax, eax
jmp 0x410845
mov eax, dword [eax + 0x10]
cmp byte [eax + 0x2e], 3
je 0x4115b4
cmp byte [ebp + 0x9c], 2
jne 0x410864
cmp dword [ebp + 0x98], ebx
je 0x4114fc
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0x18]
push edx
mov ecx, edi
mov dword [esp + 0x20], ebx
call fcn.00401860
mov eax, dword [esp + 0x14]
cmp eax, esi
jne 0x410885
xor eax, eax
jmp 0x410888
mov eax, dword [eax + 0x10]
movzx eax, byte [eax + 0x1a]
lea eax, [eax + eax*4]
mov ecx, dword [eax*8 + 0xe94c84]
test ecx, ecx
je 0x410b8d
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0xfc]
lea edi, [ebp + 0xd4a0]
push edx
mov ecx, edi
mov dword [esp + 0x20], ebx
call fcn.00401860
mov eax, dword [esp + 0xf8]
cmp eax, esi
jne 0x4108d1
mov dword [esp + 0x2c], 0
jmp 0x4108d8
mov eax, dword [eax + 0x10]
mov dword [esp + 0x2c], eax
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0xe4]
push edx
mov ecx, edi
mov dword [esp + 0x20], ebx
call fcn.00401860
mov eax, dword [esp + 0xe0]
cmp eax, esi
jne 0x4108ff
xor eax, eax
jmp 0x410902
mov eax, dword [eax + 0x10]
mov al, byte [eax + 0x1a]
mov ecx, dword [esp + 0x2c]
mov edx, dword [ecx + 0x27]
mov ecx, dword [ecx + 0x23]
movzx eax, al
push edx
lea edx, [eax + eax*4]
push ecx
lea eax, [edx*8 + 0xe94c88]
push eax
call dword [sym.imp.USER32.dll_PtInRect]
test eax, eax
je 0x410b8d
mov ecx, dword [esp + 0x10]
mov esi, dword [ecx + 0x16c]
lea edx, [esp + 0x18]
push edx
lea eax, [esp + 0xec]
push eax
lea ecx, [ebp + 0xd4a0]
mov dword [esp + 0x20], esi
call fcn.00401860
mov edi, dword [ebp + 0xd4a4]
mov eax, dword [esp + 0xe8]
cmp eax, edi
jne 0x410968
xor ecx, ecx
jmp 0x41096b
mov ecx, dword [eax + 0x10]
lea edx, [esp + 0x4c]
push edx
call fcn.00402290
mov ecx, dword [esp + 0x4c]
mov ebx, dword [esp + 0x50]
add ecx, 0x20
mov dword [esp + 0x4c], ecx
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0xf4]
push ecx
sub ebx, 0xc
lea ecx, [ebp + 0xd4a0]
mov dword [esp + 0x58], ebx
mov dword [esp + 0x20], esi
call fcn.00401860
mov eax, dword [esp + 0xf0]
cmp eax, edi
jne 0x4109b6
xor eax, eax
jmp 0x4109b9
mov eax, dword [eax + 0x10]
push 0
mov ecx, eax
mov edi, 0x4bb448
call fcn.0048eed0
mov esi, eax
mov ecx, 1
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x4109db
sub ebx, 0x18
mov dword [esp + 0x50], ebx
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x16c]
lea edx, [esp + 0x18]
push edx
lea eax, [esp + 0x88]
mov dword [esp + 0x1c], ecx
push eax
lea ecx, [ebp + 0xd4a0]
call fcn.00401860
mov eax, dword [esp + 0x84]
cmp eax, dword [ebp + 0xd4a4]
jne 0x410a14
xor ecx, ecx
jmp 0x410a17
mov ecx, dword [eax + 0x10]
push 1
mov edi, 0x4bb448
call fcn.0048eed0
mov esi, eax
mov ecx, 1
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x410a37
sub ebx, 0xc
mov dword [esp + 0x50], ebx
mov esi, dword [esp + 0x10]
mov eax, dword [esi + 0x16c]
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0x108]
push edx
lea ecx, [ebp + 0xd4a0]
mov dword [esp + 0x20], eax
call fcn.00401860
mov eax, dword [esp + 0x104]
cmp eax, dword [ebp + 0xd4a4]
jne 0x410a70
xor eax, eax
jmp 0x410a73
mov eax, dword [eax + 0x10]
mov ecx, eax
call fcn.0048f010
test ax, ax
mov ecx, ebp
jne 0x410a8c
mov eax, dword [esi + 0x16c]
jmp 0x410b5d
mov esi, dword [esp + 0x10]
mov eax, dword [esi + 0x16c]
push eax
call fcn.004018d0
mov ecx, eax
call fcn.0048f010
mov edx, dword [0xec0e0c]
movzx ecx, ax
mov eax, dword [edx]
imul ecx, ecx, 0x3a0
mov edx, dword [ecx + eax + 0x95a70]
mov ecx, dword [esi + 0x16c]
sub ebx, edx
push ecx
mov ecx, ebp
mov dword [esp + 0x54], ebx
mov edi, 0x4bb448
call fcn.004018d0
mov ecx, eax
call fcn.0048f010
movzx edx, ax
mov eax, dword [0xec0e0c]
imul edx, edx, 0x3a0
mov ecx, dword [eax]
lea esi, [edx + ecx + 0x958c8]
mov ecx, 1
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x410b51
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x16c]
mov esi, dword [0x652e00]
push edx
push 9
push edx
push 1
push 0xffff
push ecx
mov ecx, ebp
call fcn.004018d0
mov ecx, eax
call fcn.0048f010
movzx edx, ax
mov eax, dword [0xec0e0c]
imul edx, edx, 0x3a0
mov ecx, dword [eax]
mov eax, dword [esp + 0x60]
lea edx, [edx + ecx + 0x958c8]
mov ecx, dword [esp + 0x29c]
push edx
push ebx
push eax
push ecx
mov ecx, esi
jmp 0x410b88
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 0x16c]
mov ecx, ebp
push 0
push 9
push 0
push 1
push 0xffff
push eax
call fcn.004018d0
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x29c]
add eax, 4
push eax
push ebx
push ecx
mov ecx, dword [0x652e00]
push edx
call fcn.004a2600
mov eax, dword [esp + 0x10]
mov edi, dword [eax + 0x16c]
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0x90]
lea ebx, [ebp + 0xd4a0]
push edx
mov ecx, ebx
mov dword [esp + 0x20], edi
call fcn.00401860
mov esi, dword [ebp + 0xd4a4]
mov eax, dword [esp + 0x8c]
cmp eax, esi
mov dword [esp + 0x30], esi
jne 0x410bce
xor eax, eax
jmp 0x410bd1
mov eax, dword [eax + 0x10]
cmp word [eax + 0x1c8], 0
je 0x410ed9
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0xe0]
push ecx
mov ecx, ebx
mov dword [esp + 0x20], edi
call fcn.00401860
mov eax, dword [esp + 0xdc]
cmp eax, esi
jne 0x410c06
xor eax, eax
jmp 0x410c09
mov eax, dword [eax + 0x10]
mov edx, dword [eax + 0x27]
mov ecx, dword [eax + 0x23]
mov dword [esp + 0x1c], edx
mov edx, dword [0x652e10]
mov esi, dword [edx + 0x13d4]
mov ebx, dword [edx + 0x13d8]
sub ecx, esi
mov esi, dword [eax + 0x23]
mov eax, dword [eax + 0x27]
mov dword [esp + 0x18], esi
mov esi, dword [edx + 0x13d4]
mov dword [esp + 0x18], esi
mov esi, ebx
sub eax, esi
mov dword [esp + 0x1c], ebx
add ecx, 0x20
mov ebx, eax
mov dword [esp + 0x6c], ecx
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x98]
push ecx
lea ecx, [ebp + 0xd4a0]
sub ebx, 0xc
mov dword [esp + 0x20], edi
call fcn.00401860
mov eax, dword [esp + 0x94]
cmp eax, dword [esp + 0x30]
jne 0x410c7c
xor eax, eax
jmp 0x410c7f
mov eax, dword [eax + 0x10]
push 0
mov ecx, eax
mov edi, 0x4bb448
call fcn.0048eed0
mov esi, eax
mov ecx, 1
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x410c9d
sub ebx, 0x18
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x16c]
lea edx, [esp + 0x18]
push edx
lea eax, [esp + 0x10c]
mov dword [esp + 0x1c], ecx
push eax
lea ecx, [ebp + 0xd4a0]
call fcn.00401860
mov eax, dword [esp + 0x108]
cmp eax, dword [ebp + 0xd4a4]
jne 0x410cd6
xor ecx, ecx
jmp 0x410cd9
mov ecx, dword [eax + 0x10]
push 1
mov edi, 0x4bb448
call fcn.0048eed0
mov esi, eax
mov ecx, 1
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x410cf5
sub ebx, 0xc
mov edi, dword [esp + 0x10]
mov eax, dword [edi + 0x16c]
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0xa0]
lea esi, [ebp + 0xd4a0]
push edx
mov ecx, esi
mov dword [esp + 0x20], eax
call fcn.00401860
mov eax, dword [esp + 0x9c]
cmp eax, dword [ebp + 0xd4a4]
jne 0x410d30
xor eax, eax
jmp 0x410d33
mov eax, dword [eax + 0x10]
mov ecx, eax
call fcn.0048f010
test ax, ax
jne 0x410d9a
mov eax, dword [edi + 0x16c]
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0xe8]
push edx
mov ecx, esi
mov dword [esp + 0x20], eax
call fcn.00401860
mov eax, dword [esp + 0xe4]
cmp eax, dword [ebp + 0xd4a4]
jne 0x410d70
xor eax, eax
jmp 0x410d73
mov eax, dword [eax + 0x10]
mov ecx, dword [esp + 0x288]
push 3
push 9
push 3
push 1
push 0xff
add eax, 4
push eax
mov eax, dword [esp + 0x84]
push ebx
push eax
push ecx
jmp 0x410ece
mov edx, dword [edi + 0x16c]
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0xa8]
push ecx
mov ecx, esi
mov dword [esp + 0x20], edx
call fcn.00401860
mov eax, dword [esp + 0xa4]
cmp eax, dword [ebp + 0xd4a4]
jne 0x410dcb
xor ecx, ecx
jmp 0x410dce
mov ecx, dword [eax + 0x10]
call fcn.0048f010
movzx edx, ax
mov eax, dword [0xec0e0c]
imul edx, edx, 0x3a0
mov ecx, dword [eax]
mov eax, dword [edx + ecx + 0x95a70]
mov edx, dword [edi + 0x16c]
sub ebx, eax
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x100]
push ecx
mov ecx, esi
mov dword [esp + 0x20], edx
call fcn.00401860
mov eax, dword [esp + 0xfc]
cmp eax, dword [ebp + 0xd4a4]
jne 0x410e1d
xor eax, eax
jmp 0x410e20
mov eax, dword [eax + 0x10]
mov ecx, eax
mov edi, 0x4bb448
call fcn.0048f010
movzx edx, ax
mov eax, dword [0xec0e0c]
imul edx, edx, 0x3a0
mov ecx, dword [eax]
push 3
push 9
lea esi, [edx + ecx + 0x958c8]
push 3
mov ecx, 1
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
push 1
push 0xff
je 0x410ea7
mov eax, dword [esp + 0x24]
mov ecx, dword [eax + 0x16c]
mov esi, dword [0x652e00]
push ecx
mov ecx, ebp
call fcn.004018d0
mov ecx, eax
call fcn.0048f010
movzx edx, ax
mov eax, dword [0xec0e0c]
imul edx, edx, 0x3a0
mov ecx, dword [eax]
mov eax, dword [esp + 0x80]
lea edx, [edx + ecx + 0x958c8]
mov ecx, dword [esp + 0x29c]
push edx
push ebx
push eax
push ecx
mov ecx, esi
jmp 0x410ed4
mov edx, dword [esp + 0x24]
mov eax, dword [edx + 0x16c]
push eax
mov ecx, ebp
call fcn.004018d0
mov ecx, dword [esp + 0x80]
mov edx, dword [esp + 0x29c]
add eax, 4
push eax
push ebx
push ecx
push edx
mov ecx, dword [0x652e00]
call fcn.004a2600
mov eax, dword [0x652e04]
mov ecx, dword [eax + 0x22dc6c]
test ecx, ecx
jne 0x410ef6
mov ecx, dword [eax + 0x22dc70]
test ecx, ecx
je 0x410fb7
mov eax, dword [ebp + 0x94]
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0xb0]
lea ebx, [ebp + 0xd4a0]
push edx
mov ecx, ebx
mov dword [esp + 0x20], eax
call fcn.00401860
mov edi, dword [ebp + 0xd4a4]
mov eax, dword [esp + 0xac]
cmp eax, edi
jne 0x410f2f
xor eax, eax
jmp 0x410f32
mov eax, dword [eax + 0x10]
mov ax, word [eax + 0x1a8]
mov ecx, dword [esp + 0x10]
mov esi, dword [ecx + 0x16c]
lea edx, [esp + 0x18]
mov word [esp + 0x2c], ax
push edx
lea eax, [esp + 0xf0]
push eax
mov ecx, ebx
mov dword [esp + 0x20], esi
call fcn.00401860
mov eax, dword [esp + 0xec]
cmp eax, edi
jne 0x410f6f
xor eax, eax
jmp 0x410f72
mov eax, dword [eax + 0x10]
mov cx, word [esp + 0x2c]
cmp cx, word [eax + 0x1a8]
jne 0x410fb7
lea edx, [esp + 0x18]
push edx
lea eax, [esp + 0xb8]
push eax
mov ecx, ebx
mov dword [esp + 0x20], esi
call fcn.00401860
mov eax, dword [esp + 0xb4]
cmp eax, edi
jne 0x410fa7
xor ecx, ecx
jmp 0x410faa
mov ecx, dword [eax + 0x10]
mov edx, dword [esp + 0x288]
push edx
call fcn.0048fb50
mov esi, dword [esp + 0x10]
mov eax, dword [esi + 0x16c]
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0x80]
lea edi, [ebp + 0xd4a0]
push edx
mov ecx, edi
mov dword [esp + 0x20], eax
call fcn.00401860
mov eax, dword [esp + 0x7c]
cmp eax, dword [ebp + 0xd4a4]
jne 0x410fef
xor eax, eax
jmp 0x410ff2
mov eax, dword [eax + 0x10]
movzx eax, word [eax + 0x1a8]
push eax
mov ecx, 0x4c81f0
call fcn.0041ae40
test eax, eax
je 0x411049
mov eax, dword [esi + 0x16c]
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0xc0]
push edx
mov ecx, edi
mov dword [esp + 0x20], eax
call fcn.00401860
mov eax, dword [esp + 0xbc]
cmp eax, dword [ebp + 0xd4a4]
jne 0x411039
xor ecx, ecx
jmp 0x41103c
mov ecx, dword [eax + 0x10]
mov eax, dword [esp + 0x288]
push eax
call fcn.0048fb50
mov eax, dword [0x4c9d94]
test eax, eax
je 0x411093
mov ecx, dword [esi + 0x16c]
lea edx, [esp + 0x18]
push edx
lea eax, [esp + 0xf8]
mov dword [esp + 0x1c], ecx
push eax
mov ecx, edi
call fcn.00401860
mov eax, dword [esp + 0xf4]
cmp eax, dword [ebp + 0xd4a4]
jne 0x411083
xor ecx, ecx
jmp 0x411086
mov ecx, dword [eax + 0x10]
mov edx, dword [esp + 0x288]
push edx
call fcn.0048fb50
mov eax, dword [esp + 0x10]
mov esi, dword [eax + 0x16c]
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0xc8]
push edx
mov ecx, edi
mov dword [esp + 0x34], esi
mov dword [esp + 0x20], esi
call fcn.00401860
mov ebx, dword [ebp + 0xd4a4]
mov eax, dword [esp + 0xc4]
cmp eax, ebx
mov dword [esp + 0x30], ebx
jne 0x4110d2
xor eax, eax
jmp 0x4110d5
mov eax, dword [eax + 0x10]
cmp word [eax + 0x1a8], 0x3e8
je 0x411119
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x110]
push ecx
mov ecx, edi
mov dword [esp + 0x20], esi
call fcn.00401860
mov eax, dword [esp + 0x10c]
cmp eax, ebx
jne 0x411107
xor eax, eax
jmp 0x41110a
mov eax, dword [eax + 0x10]
cmp word [eax + 0x1a8], 0x3e9
jne 0x4113ff
lea edx, [esp + 0x18]
push edx
lea eax, [esp + 0xd0]
push eax
mov ecx, edi
mov dword [esp + 0x20], esi
call fcn.00401860
mov eax, dword [esp + 0xcc]
cmp eax, ebx
jne 0x411140
xor eax, eax
jmp 0x411143
mov eax, dword [eax + 0x10]
mov edx, dword [eax + 0x27]
mov ecx, dword [eax + 0x23]
mov dword [esp + 0x1c], edx
mov edx, dword [0x652e10]
mov esi, dword [edx + 0x13d4]
mov ebx, dword [edx + 0x13d8]
sub ecx, esi
mov esi, dword [eax + 0x23]
mov eax, dword [eax + 0x27]
mov dword [esp + 0x18], esi
mov esi, dword [edx + 0x13d4]
mov dword [esp + 0x18], esi
mov esi, ebx
mov dword [esp + 0x1c], ebx
sub eax, esi
mov ebx, ecx
mov esi, eax
mov eax, dword [esp + 0x2c]
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0x104]
sub esi, 0xc
push edx
mov ecx, edi
add ebx, 0x20
mov dword [esp + 0x68], esi
mov dword [esp + 0x20], eax
call fcn.00401860
mov eax, dword [esp + 0x100]
cmp eax, dword [esp + 0x30]
jne 0x4111b8
xor eax, eax
jmp 0x4111bb
mov eax, dword [eax + 0x10]
mov ecx, eax
call fcn.0048f010
test ax, ax
je 0x411220
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x16c]
lea edx, [esp + 0x18]
push edx
lea eax, [esp + 0xd8]
mov dword [esp + 0x1c], ecx
push eax
mov ecx, edi
call fcn.00401860
mov eax, dword [esp + 0xd4]
cmp eax, dword [ebp + 0xd4a4]
jne 0x4111fc
xor ecx, ecx
jmp 0x4111ff
mov ecx, dword [eax + 0x10]
call fcn.0048f010
mov edx, dword [0xec0e0c]
movzx ecx, ax
mov eax, dword [edx]
imul ecx, ecx, 0x3a0
sub esi, dword [ecx + eax + 0x95a70]
mov dword [esp + 0x60], esi
mov ecx, dword [esp + 0x10]
mov edx, dword [ecx + 0x16c]
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0x84]
push ecx
mov ecx, edi
mov dword [esp + 0x20], edx
call fcn.00401860
mov eax, dword [esp + 0x80]
cmp eax, dword [ebp + 0xd4a4]
jne 0x411255
xor ecx, ecx
jmp 0x411258
mov ecx, dword [eax + 0x10]
push 0
mov edi, 0x4bb448
call fcn.0048eed0
mov esi, eax
mov ecx, 1
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x411276
sub dword [esp + 0x60], 0x18
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x16c]
lea edx, [esp + 0x18]
push edx
lea eax, [esp + 0x8c]
mov dword [esp + 0x1c], ecx
push eax
lea ecx, [ebp + 0xd4a0]
call fcn.00401860
mov eax, dword [esp + 0x88]
cmp eax, dword [ebp + 0xd4a4]
jne 0x4112af
xor ecx, ecx
jmp 0x4112b2
mov ecx, dword [eax + 0x10]
push 1
mov edi, 0x4bb448
call fcn.0048eed0
mov esi, eax
mov ecx, 1
xor edx, edx
repe cmpsb byte [esi], byte es:[edi]
je 0x4112d0
sub dword [esp + 0x60], 0xc
mov eax, dword [esp + 0x10]
mov esi, dword [eax + 0x16c]
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0x94]
push edx
lea ecx, [ebp + 0xd4a0]
mov dword [esp + 0x20], esi
call fcn.00401860
mov edi, dword [ebp + 0xd4a4]
mov eax, dword [esp + 0x90]
cmp eax, edi
jne 0x41130b
xor eax, eax
jmp 0x41130e
mov eax, dword [eax + 0x10]
cmp word [eax + 0x1a8], 0x3e8
lea eax, [esp + 0x18]
mov dword [esp + 0x18], esi
push eax
jne 0x411361
lea ecx, [esp + 0x9c]
push ecx
lea ecx, [ebp + 0xd4a0]
call fcn.00401860
mov eax, dword [esp + 0x98]
cmp eax, edi
jne 0x41134f
xor eax, eax
push eax
push 9
push eax
push 1
push 0xffff
jmp 0x411393
mov eax, dword [eax + 0x10]
push 0
push 9
push 0
push 1
push 0xffff
jmp 0x411393
lea ecx, [esp + 0xa4]
push ecx
lea ecx, [ebp + 0xd4a0]
call fcn.00401860
mov eax, dword [esp + 0xa0]
cmp eax, edi
jne 0x411383
xor eax, eax
jmp 0x411386
mov eax, dword [eax + 0x10]
push 0
push 9
push 0
push 1
push 0x80ff
mov edx, dword [esp + 0x74]
mov edi, dword [esp + 0x29c]
mov ecx, dword [0x652e00]
add eax, 4
push eax
push edx
push ebx
push edi
call fcn.004a2600
mov esi, eax
mov eax, dword [esp + 0x10]
mov ecx, dword [eax + 0x16c]
lea edx, [esp + 0x18]
push edx
lea eax, [esp + 0xac]
mov dword [esp + 0x1c], ecx
push eax
lea ecx, [ebp + 0xd4a0]
call fcn.00401860
mov eax, dword [esp + 0xa8]
cmp eax, dword [ebp + 0xd4a4]
jne 0x4113eb
xor ecx, ecx
jmp 0x4113ee
mov ecx, dword [eax + 0x10]
mov edx, dword [esp + 0x60]
push edi
sub ebx, esi
push edx
sub ebx, 0xc
push ebx
call fcn.0048ec10
mov edi, dword [esp + 0x10]
mov eax, dword [edi + 0x16c]
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0xb4]
lea esi, [ebp + 0xd4a0]
push edx
mov ecx, esi
mov dword [esp + 0x20], eax
call fcn.00401860
mov eax, dword [esp + 0xb0]
cmp eax, dword [ebp + 0xd4a4]
jne 0x41143a
xor eax, eax
jmp 0x41143d
mov eax, dword [eax + 0x10]
mov ecx, eax
call fcn.0048f010
test ax, ax
je 0x411484
mov eax, dword [edi + 0x16c]
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0xbc]
push edx
mov ecx, esi
mov dword [esp + 0x20], eax
call fcn.00401860
mov eax, dword [esp + 0xb8]
cmp eax, dword [ebp + 0xd4a4]
jne 0x41147a
xor eax, eax
jmp 0x41147d
mov eax, dword [eax + 0x10]
mov ecx, eax
call fcn.0048f010
mov eax, dword [edi + 0x16c]
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0xc4]
push edx
mov ecx, esi
mov dword [esp + 0x20], eax
call fcn.00401860
mov eax, dword [esp + 0xc0]
cmp eax, dword [ebp + 0xd4a4]
jne 0x4114b5
xor ecx, ecx
jmp 0x4114b8
mov ecx, dword [eax + 0x10]
push 0
call fcn.0048eed0
mov eax, dword [edi + 0x16c]
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0xcc]
push edx
mov ecx, esi
mov dword [esp + 0x20], eax
call fcn.00401860
mov eax, dword [esp + 0xc8]
cmp eax, dword [ebp + 0xd4a4]
jne 0x4114f0
xor eax, eax
jmp 0x4114f3
mov eax, dword [eax + 0x10]
push 1
mov ecx, eax
call fcn.0048eed0
mov eax, dword [esp + 0x10]
mov eax, dword [eax + 0x16c]
cmp dword [ebp + 0x94], eax
jne 0x4115b4
lea ecx, [esp + 0x18]
push ecx
lea edx, [esp + 0xd4]
lea edi, [ebp + 0xd4a0]
push edx
mov ecx, edi
mov dword [esp + 0x20], eax
call fcn.00401860
mov eax, dword [esp + 0xd0]
cmp eax, dword [ebp + 0xd4a4]
jne 0x411543
xor ecx, ecx
jmp 0x411546
mov ecx, dword [eax + 0x10]
lea eax, [esp + 0x144]
push eax
call fcn.00490230
mov esi, dword [eax]
mov ecx, dword [esp + 0x10]
mov edx, dword [ecx + 0x16c]
lea eax, [esp + 0x18]
push eax
lea ecx, [esp + 0xdc]
push ecx
mov ecx, edi
add esi, 0x20
mov dword [esp + 0x20], edx
call fcn.00401860
mov eax, dword [esp + 0xd8]
cmp eax, dword [ebp + 0xd4a4]
jne 0x41158d
xor ecx, ecx
jmp 0x411590
mov ecx, dword [eax + 0x10]
lea edx, [esp + 0x134]
push edx
call fcn.00490230
mov eax, dword [eax + 4]
sub eax, 0x60
push eax
mov eax, dword [esp + 0x28c]
push esi
push eax
mov ecx, ebp
call fcn.0040c450
mov eax, dword [esp + 0x34]
mov ecx, dword [ebp + 0x6ae4]
inc eax
cmp eax, ecx
mov dword [esp + 0x34], eax
jl 0x410660
mov ecx, dword [0x652e00]
call fcn.004a2250
mov ecx, dword [esp + 0x288]
push ecx
push 0x14
push 0x140
mov ecx, 0x4c81f0
call fcn.0041b340
pop edi
pop esi
pop ebx
xor eax, eax
pop ebp
add esp, 0x274
ret 8