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

Disassembly:
push ebp
mov ebp, esp
push 0xffffffffffffffff
push 0x59c04d
mov eax, dword fs:[0]
push eax
sub esp, 0x2dc
push ebx
push esi
push edi
mov eax, dword [0x639354]
xor eax, ebp
push eax
lea eax, [ebp - 0xc]
mov dword fs:[0], eax
mov dword [ebp - 0x10], esp
mov esi, dword [ebp + 8]
xor eax, eax
mov dword [ebp - 4], 0
cmp dword [esi + 0x9c], eax
lea edi, [esi + 0xa4]
cmove edi, eax
test edi, edi
je 0x416e66
cmp byte [edi + 0x14a], al
jne 0x416e4d
cmp byte [edi + 0x14b], al
jne 0x416e4d
cmp byte [edi + 0x14c], al
jne 0x416e4d
cmp byte [edi + 0x14e], al
je 0x416e66
mov eax, 0x80004001
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x18], eax
mov dword [ebp - 0x14], eax
mov al, byte [esi + 0x91]
mov byte [ebp - 4], 1
test al, al
je 0x416e8a
cmp byte [esi + 0x90], 0
mov byte [ebp - 0x1e], 1
jne 0x416e8e
mov byte [ebp - 0x1e], 0
mov cl, byte [esi + 0x8f]
test cl, cl
je 0x416ea5
cmp byte [esi + 0x8e], 0
mov byte [ebp - 0x1f], 1
jne 0x416ea9
mov byte [ebp - 0x1f], 0
mov dl, byte [esi + 0x8d]
test dl, dl
je 0x416ebe
mov ah, byte [esi + 0x8c]
mov byte [ebp - 0x20], ah
jmp 0x416ec2
mov byte [ebp - 0x20], 1
mov bl, byte [esi + 0x99]
test bl, bl
je 0x416ed7
mov bh, byte [esi + 0x98]
mov byte [ebp - 0x21], bh
jmp 0x416edb
mov byte [ebp - 0x21], 1
test edi, edi
je 0x416f1e
cmp dword [edi + 0x5c], 0
je 0x416f1e
test al, al
jne 0x416ef1
cmp dword [edi + 0x68], 0
setne byte [ebp - 0x1e]
test cl, cl
jne 0x416f00
cmp dword [edi + 0x80], 0
setne byte [ebp - 0x1f]
test dl, dl
jne 0x416f0f
cmp dword [edi + 0x98], 0
setne byte [ebp - 0x20]
test bl, bl
jne 0x416f1e
cmp dword [edi + 0xc8], 0
setne byte [ebp - 0x21]
lea ecx, [ebp - 0x38]
call fcn.00435b90
mov ebx, dword [ebp + 0x14]
xor esi, esi
mov byte [ebp - 4], 2
mov dword [ebp - 0x2c], esi
cmp esi, dword [ebp + 0x10]
jae 0x417afc
test ebx, ebx
jne 0x416f97
push dword [ebp - 0x38]
call fcn.0055c53b
mov esi, dword [ebp - 0x18]
add esp, 4
test esi, esi
je 0x416f73
mov eax, dword [ebp - 0x1c]
dec esi
mov edi, dword [eax + esi*4]
test edi, edi
je 0x416f6f
push dword [edi + 0x28]
call fcn.0055c53b
push 0x40
push edi
call fcn.0055c524
add esp, 0xc
test esi, esi
jne 0x416f51
push dword [ebp - 0x1c]
call fcn.0055c53b
add esp, 4
mov eax, 0x80004005
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
mov eax, dword [ebx]
lea ecx, [ebp - 0x3c]
push ecx
lea ecx, [ebp - 0x11c]
push ecx
lea ecx, [ebp - 0x88]
push ecx
push esi
push ebx
call dword [eax + 0x14]
mov dword [ebp - 0x28], eax
test eax, eax
je 0x417014
push dword [ebp - 0x38]
call fcn.0055c53b
mov esi, dword [ebp - 0x18]
add esp, 4
test esi, esi
je 0x416ff2
lea esp, [esp]
mov eax, dword [ebp - 0x1c]
dec esi
mov edi, dword [eax + esi*4]
test edi, edi
je 0x416fee
push dword [edi + 0x28]
call fcn.0055c53b
push 0x40
push edi
call fcn.0055c524
add esp, 0xc
test esi, esi
jne 0x416fd0
push dword [ebp - 0x1c]
call fcn.0055c53b
mov eax, dword [ebp - 0x28]
add esp, 4
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
lea ecx, [ebp - 0x54]
call fcn.00435b90
mov dword [ebp - 0x41], 0
mov byte [ebp - 0x3d], 0
cmp dword [ebp - 0x11c], 0
mov eax, dword [ebp - 0x3c]
setne byte [ebp - 0x43]
mov dword [ebp - 0x7c], eax
cmp dword [ebp - 0x88], 0
mov eax, dword [ebp - 0x38]
setne byte [ebp - 0x44]
mov dword [ebp - 0x78], esi
xor ecx, ecx
mov byte [ebp - 0x42], 0
mov dword [ebp - 0x5c], 0
mov dword [ebp - 0x58], 0
mov dword [ebp - 0x34], 0
mov word [eax], cx
mov edx, dword [ebp - 0x7c]
mov byte [ebp - 4], 3
cmp edx, 0xffffffff
je 0x417206
test edi, edi
je 0x4171a1
cmp edx, dword [edi + 0x5c]
jae 0x4171a1
mov esi, edx
shl esi, 4
add esi, dword [edi + 0x58]
cmp byte [ebp - 0x43], cl
jne 0x4170ab
mov ecx, dword [ebp + 8]
lea eax, [ebp - 0x38]
push eax
push edx
lea ecx, [ecx + 0xa4]
call fcn.00418a80
mov edx, dword [ebp - 0x7c]
mov al, byte [esi + 0xd]
mov byte [ebp - 0x41], al
mov eax, dword [esi]
mov ecx, dword [esi + 4]
mov dword [ebp - 0x5c], eax
mov dword [ebp - 0x58], ecx
cmp edx, dword [edi + 0xe0]
jae 0x4170d4
mov eax, dword [edi + 0xdc]
cmp byte [edx + eax], 0
mov byte [ebp - 0x42], 1
jne 0x4170d8
mov byte [ebp - 0x42], 0
cmp byte [ebp - 0x43], 0
jne 0x417211
cmp edx, dword [edi + 0x68]
jae 0x417104
mov eax, dword [edi + 0x64]
cmp byte [edx + eax], 0
je 0x417104
mov eax, dword [edi + 0x70]
mov ecx, dword [eax + edx*8]
mov eax, dword [eax + edx*8 + 4]
mov dword [ebp - 0x70], eax
mov al, 1
mov dword [ebp - 0x74], ecx
jmp 0x417114
mov dword [ebp - 0x74], 0
xor al, al
mov dword [ebp - 0x70], 0
mov byte [ebp - 0x3f], al
cmp edx, dword [edi + 0x80]
jae 0x41713f
mov eax, dword [edi + 0x7c]
cmp byte [edx + eax], 0
je 0x41713f
mov eax, dword [edi + 0x88]
mov ecx, dword [eax + edx*8]
mov eax, dword [eax + edx*8 + 4]
mov dword [ebp - 0x68], eax
mov al, 1
mov dword [ebp - 0x6c], ecx
jmp 0x41714f
mov dword [ebp - 0x6c], 0
xor al, al
mov dword [ebp - 0x68], 0
mov byte [ebp - 0x3e], al
cmp edx, dword [edi + 0x98]
jae 0x417186
mov eax, dword [edi + 0x94]
cmp byte [edx + eax], 0
je 0x417186
mov eax, dword [edi + 0xa0]
mov esi, dword [ebp - 0x2c]
mov ecx, dword [eax + edx*8]
mov eax, dword [eax + edx*8 + 4]
mov dword [ebp - 0x60], eax
mov al, 1
mov dword [ebp - 0x64], ecx
mov byte [ebp - 0x3d], al
jmp 0x417831
mov esi, dword [ebp - 0x2c]
xor al, al
mov dword [ebp - 0x64], 0
mov dword [ebp - 0x60], 0
mov byte [ebp - 0x3d], al
jmp 0x417831
push dword [ebp - 0x54]
call fcn.0055c53b
push dword [ebp - 0x38]
call fcn.0055c53b
mov esi, dword [ebp - 0x18]
add esp, 8
test esi, esi
je 0x4171e2
jmp 0x4171c0
mov eax, dword [ebp - 0x1c]
dec esi
mov edi, dword [eax + esi*4]
test edi, edi
je 0x4171de
push dword [edi + 0x28]
call fcn.0055c53b
push 0x40
push edi
call fcn.0055c524
add esp, 0xc
test esi, esi
jne 0x4171c0
push dword [ebp - 0x1c]
call fcn.0055c53b
add esp, 4
mov eax, 0x80070057
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
cmp byte [ebp - 0x43], cl
je 0x417831
jmp 0x417214
mov esi, dword [ebp - 0x2c]
cmp byte [ebp - 0x21], 0
je 0x417337
xor eax, eax
mov dword [ebp - 0xe8], eax
mov dword [ebp - 0xe0], eax
mov eax, dword [ebx]
lea ecx, [ebp - 0xe8]
push ecx
push 9
push esi
push ebx
mov byte [ebp - 4], 4
call dword [eax + 0x18]
mov dword [ebp - 0x28], eax
test eax, eax
je 0x4172b4
lea ecx, [ebp - 0xe8]
call fcn.004366b0
push dword [ebp - 0x54]
call fcn.0055c53b
push dword [ebp - 0x38]
call fcn.0055c53b
mov esi, dword [ebp - 0x18]
add esp, 8
test esi, esi
je 0x417292
lea esp, [esp]
mov eax, dword [ebp - 0x1c]
dec esi
mov edi, dword [eax + esi*4]
test edi, edi
je 0x41728e
push dword [edi + 0x28]
call fcn.0055c53b
push 0x40
push edi
call fcn.0055c524
add esp, 0xc
test esi, esi
jne 0x417270
push dword [ebp - 0x1c]
call fcn.0055c53b
mov eax, dword [ebp - 0x28]
add esp, 4
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
mov ax, word [ebp - 0xe8]
test ax, ax
jne 0x4172c5
mov byte [ebp - 0x40], al
jmp 0x417328
cmp ax, 0x13
je 0x41731b
lea ecx, [ebp - 0xe8]
call fcn.004366b0
push dword [ebp - 0x54]
call fcn.0055c53b
push dword [ebp - 0x38]
call fcn.0055c53b
mov esi, dword [ebp - 0x18]
add esp, 8
test esi, esi
je 0x4171e2
mov eax, dword [ebp - 0x1c]
dec esi
mov edi, dword [eax + esi*4]
test edi, edi
je 0x417312
push dword [edi + 0x28]
call fcn.0055c53b
push 0x40
push edi
call fcn.0055c524
add esp, 0xc
test esi, esi
jne 0x4172f4
jmp 0x4171e2
mov eax, dword [ebp - 0xe0]
mov dword [ebp - 0x48], eax
mov byte [ebp - 0x40], 1
lea ecx, [ebp - 0xe8]
mov byte [ebp - 4], 3
call fcn.004366b0
cmp byte [ebp - 0x1e], 0
je 0x4173b6
lea eax, [ebp - 0x3f]
push eax
lea eax, [ebp - 0x74]
push eax
push 0xa
push esi
push ebx
call fcn.00415660
add esp, 0x14
mov dword [ebp - 0x28], eax
test eax, eax
je 0x4173b6
push dword [ebp - 0x54]
call fcn.0055c53b
push dword [ebp - 0x38]
call fcn.0055c53b
mov esi, dword [ebp - 0x18]
add esp, 8
test esi, esi
je 0x417394
mov eax, dword [ebp - 0x1c]
dec esi
mov edi, dword [eax + esi*4]
test edi, edi
je 0x417390
push dword [edi + 0x28]
call fcn.0055c53b
push 0x40
push edi
call fcn.0055c524
add esp, 0xc
test esi, esi
jne 0x417372
push dword [ebp - 0x1c]
call fcn.0055c53b
mov eax, dword [ebp - 0x28]
add esp, 4
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
cmp byte [ebp - 0x1f], 0
je 0x417435
lea eax, [ebp - 0x3e]
push eax
lea eax, [ebp - 0x6c]
push eax
push 0xb
push esi
push ebx
call fcn.00415660
add esp, 0x14
mov dword [ebp - 0x28], eax
test eax, eax
je 0x417435
push dword [ebp - 0x54]
call fcn.0055c53b
push dword [ebp - 0x38]
call fcn.0055c53b
mov esi, dword [ebp - 0x18]
add esp, 8
test esi, esi
je 0x417413
mov eax, dword [ebp - 0x1c]
dec esi
mov edi, dword [eax + esi*4]
test edi, edi
je 0x41740f
push dword [edi + 0x28]
call fcn.0055c53b
push 0x40
push edi
call fcn.0055c524
add esp, 0xc
test esi, esi
jne 0x4173f1
push dword [ebp - 0x1c]
call fcn.0055c53b
mov eax, dword [ebp - 0x28]
add esp, 4
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
cmp byte [ebp - 0x20], 0
je 0x4174b4
lea eax, [ebp - 0x3d]
push eax
lea eax, [ebp - 0x64]
push eax
push 0xc
push esi
push ebx
call fcn.00415660
add esp, 0x14
mov dword [ebp - 0x28], eax
test eax, eax
je 0x4174b4
push dword [ebp - 0x54]
call fcn.0055c53b
push dword [ebp - 0x38]
call fcn.0055c53b
mov esi, dword [ebp - 0x18]
add esp, 8
test esi, esi
je 0x417492
mov eax, dword [ebp - 0x1c]
dec esi
mov edi, dword [eax + esi*4]
test edi, edi
je 0x41748e
push dword [edi + 0x28]
call fcn.0055c53b
push 0x40
push edi
call fcn.0055c524
add esp, 0xc
test esi, esi
jne 0x417470
push dword [ebp - 0x1c]
call fcn.0055c53b
mov eax, dword [ebp - 0x28]
add esp, 4
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
xor eax, eax
mov dword [ebp - 0xf8], eax
mov dword [ebp - 0xf0], eax
mov eax, dword [ebx]
lea ecx, [ebp - 0xf8]
push ecx
push 3
push esi
push ebx
mov byte [ebp - 4], 5
call dword [eax + 0x18]
mov dword [ebp - 0x28], eax
test eax, eax
je 0x417546
lea ecx, [ebp - 0xf8]
call fcn.004366b0
push dword [ebp - 0x54]
call fcn.0055c53b
push dword [ebp - 0x38]
call fcn.0055c53b
mov esi, dword [ebp - 0x18]
add esp, 8
test esi, esi
je 0x417524
mov eax, dword [ebp - 0x1c]
dec esi
mov edi, dword [eax + esi*4]
test edi, edi
je 0x417520
push dword [edi + 0x28]
call fcn.0055c53b
push 0x40
push edi
call fcn.0055c524
add esp, 0xc
test esi, esi
jne 0x417502
push dword [ebp - 0x1c]
call fcn.0055c53b
mov eax, dword [ebp - 0x28]
add esp, 4
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
mov ax, word [ebp - 0xf8]
test ax, ax
je 0x4175c2
cmp ax, 8
je 0x4175a8
lea ecx, [ebp - 0xf8]
call fcn.004366b0
push dword [ebp - 0x54]
call fcn.0055c53b
push dword [ebp - 0x38]
call fcn.0055c53b
mov esi, dword [ebp - 0x18]
add esp, 8
test esi, esi
je 0x4171e2
mov eax, dword [ebp - 0x1c]
dec esi
mov edi, dword [eax + esi*4]
test edi, edi
je 0x41759f
push dword [edi + 0x28]
call fcn.0055c53b
push 0x40
push edi
call fcn.0055c524
add esp, 0xc
test esi, esi
jne 0x417581
jmp 0x4171e2
push dword [ebp - 0xf0]
lea ecx, [ebp - 0x38]
call fcn.00435c90
lea eax, [ebp - 0x38]
push eax
call fcn.00429020
add esp, 4
lea ecx, [ebp - 0xf8]
call fcn.004366b0
xor eax, eax
mov dword [ebp - 0x108], eax
mov dword [ebp - 0x100], eax
mov eax, dword [ebx]
lea ecx, [ebp - 0x108]
push ecx
push 6
push esi
push ebx
mov byte [ebp - 4], 6
call dword [eax + 0x18]
mov dword [ebp - 0x28], eax
test eax, eax
je 0x417664
lea ecx, [ebp - 0x108]
call fcn.004366b0
push dword [ebp - 0x54]
call fcn.0055c53b
push dword [ebp - 0x38]
call fcn.0055c53b
mov esi, dword [ebp - 0x18]
add esp, 8
test esi, esi
je 0x417642
jmp 0x417620
mov eax, dword [ebp - 0x1c]
dec esi
mov edi, dword [eax + esi*4]
test edi, edi
je 0x41763e
push dword [edi + 0x28]
call fcn.0055c53b
push 0x40
push edi
call fcn.0055c524
add esp, 0xc
test esi, esi
jne 0x417620
push dword [ebp - 0x1c]
call fcn.0055c53b
mov eax, dword [ebp - 0x28]
add esp, 4
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
mov ax, word [ebp - 0x108]
test ax, ax
jne 0x417675
mov byte [ebp - 0x1d], al
jmp 0x4176db
cmp ax, 0xb
je 0x4176cb
lea ecx, [ebp - 0x108]
call fcn.004366b0
push dword [ebp - 0x54]
call fcn.0055c53b
push dword [ebp - 0x38]
call fcn.0055c53b
mov esi, dword [ebp - 0x18]
add esp, 8
test esi, esi
je 0x4171e2
mov eax, dword [ebp - 0x1c]
dec esi
mov edi, dword [eax + esi*4]
test edi, edi
je 0x4176c2
push dword [edi + 0x28]
call fcn.0055c53b
push 0x40
push edi
call fcn.0055c524
add esp, 0xc
test esi, esi
jne 0x4176a4
jmp 0x4171e2
cmp word [ebp - 0x100], 0
mov byte [ebp - 0x1d], 1
setne byte [ebp - 0x41]
lea ecx, [ebp - 0x108]
call fcn.004366b0
xor eax, eax
mov dword [ebp - 0x118], eax
mov dword [ebp - 0x110], eax
mov eax, dword [ebx]
lea ecx, [ebp - 0x118]
push ecx
push 0x15
push esi
push ebx
mov byte [ebp - 4], 7
call dword [eax + 0x18]
mov dword [ebp - 0x28], eax
test eax, eax
je 0x417778
lea ecx, [ebp - 0x118]
call fcn.004366b0
push dword [ebp - 0x54]
call fcn.0055c53b
push dword [ebp - 0x38]
call fcn.0055c53b
mov esi, dword [ebp - 0x18]
add esp, 8
test esi, esi
je 0x417756
mov eax, dword [ebp - 0x1c]
dec esi
mov edi, dword [eax + esi*4]
test edi, edi
je 0x417752
push dword [edi + 0x28]
call fcn.0055c53b
push 0x40
push edi
call fcn.0055c524
add esp, 0xc
test esi, esi
jne 0x417734
push dword [ebp - 0x1c]
call fcn.0055c53b
mov eax, dword [ebp - 0x28]
add esp, 4
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
mov ax, word [ebp - 0x118]
test ax, ax
jne 0x417789
mov byte [ebp - 0x42], al
jmp 0x4177eb
cmp ax, 0xb
je 0x4177df
lea ecx, [ebp - 0x118]
call fcn.004366b0
push dword [ebp - 0x54]
call fcn.0055c53b
push dword [ebp - 0x38]
call fcn.0055c53b
mov esi, dword [ebp - 0x18]
add esp, 8
test esi, esi
je 0x4171e2
mov eax, dword [ebp - 0x1c]
dec esi
mov edi, dword [eax + esi*4]
test edi, edi
je 0x4177d6
push dword [edi + 0x28]
call fcn.0055c53b
push 0x40
push edi
call fcn.0055c524
add esp, 0xc
test esi, esi
jne 0x4177b8
jmp 0x4171e2
cmp word [ebp - 0x110], 0
setne byte [ebp - 0x42]
lea ecx, [ebp - 0x118]
mov byte [ebp - 4], 3
call fcn.004366b0
cmp byte [ebp - 0x42], 0
je 0x417819
xor al, al
mov dword [ebp - 0x40], 0
mov dword [ebp - 0x5c], 0
mov dword [ebp - 0x58], 0
jmp 0x41781c
mov al, byte [ebp - 0x40]
cmp byte [ebp - 0x1d], 0
jne 0x417831
test al, al
je 0x417831
mov eax, dword [ebp - 0x48]
shr eax, 4
and al, 1
mov byte [ebp - 0x41], al
lea eax, [ebp - 0x38]
push eax
lea ecx, [ebp - 0x54]
call fcn.00435c20
cmp byte [ebp - 0x44], 0
je 0x4179c9
cmp byte [ebp - 0x41], 0
mov dword [ebp - 0x5c], 0
mov dword [ebp - 0x58], 0
jne 0x4179c9
xor eax, eax
mov dword [ebp - 0xd8], eax
mov dword [ebp - 0xd0], eax
mov eax, dword [ebx]
lea ecx, [ebp - 0xd8]
push ecx
push 7
push esi
push ebx
mov byte [ebp - 4], 8
call dword [eax + 0x18]
mov dword [ebp - 0x28], eax
test eax, eax
je 0x4178f4
lea ecx, [ebp - 0xd8]
call fcn.004366b0
push dword [ebp - 0x54]
call fcn.0055c53b
push dword [ebp - 0x38]
call fcn.0055c53b
mov esi, dword [ebp - 0x18]
add esp, 8
test esi, esi
je 0x4178d2
lea ecx, [ecx]
mov eax, dword [ebp - 0x1c]
dec esi
mov edi, dword [eax + esi*4]
test edi, edi
je 0x4178ce
push dword [edi + 0x28]
call fcn.0055c53b
push 0x40
push edi
call fcn.0055c524
add esp, 0xc
test esi, esi
jne 0x4178b0
push dword [ebp - 0x1c]
call fcn.0055c53b
mov eax, dword [ebp - 0x28]
add esp, 4
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
cmp word [ebp - 0xd8], 0x15
je 0x41794e
lea ecx, [ebp - 0xd8]
call fcn.004366b0
push dword [ebp - 0x54]
call fcn.0055c53b
push dword [ebp - 0x38]
call fcn.0055c53b
mov esi, dword [ebp - 0x18]
add esp, 8
test esi, esi
je 0x4171e2
mov eax, dword [ebp - 0x1c]
dec esi
mov edi, dword [eax + esi*4]
test edi, edi
je 0x417945
push dword [edi + 0x28]
call fcn.0055c53b
push 0x40
push edi
call fcn.0055c524
add esp, 0xc
test esi, esi
jne 0x417927
jmp 0x4171e2
mov ecx, dword [ebp - 0xd0]
mov eax, dword [ebp - 0xcc]
mov dword [ebp - 0x5c], ecx
or ecx, eax
mov dword [ebp - 0x58], eax
je 0x4179ba
cmp byte [ebp - 0x42], 0
je 0x4179ba
lea ecx, [ebp - 0xd8]
call fcn.004366b0
push dword [ebp - 0x54]
call fcn.0055c53b
push dword [ebp - 0x38]
call fcn.0055c53b
mov esi, dword [ebp - 0x18]
add esp, 8
test esi, esi
je 0x4171e2
mov eax, dword [ebp - 0x1c]
dec esi
mov edi, dword [eax + esi*4]
test edi, edi
je 0x4179b1
push dword [edi + 0x28]
call fcn.0055c53b
push 0x40
push edi
call fcn.0055c524
add esp, 0xc
test esi, esi
jne 0x417993
jmp 0x4171e2
lea ecx, [ebp - 0xd8]
mov byte [ebp - 4], 3
call fcn.004366b0
mov ecx, dword [ebp - 0x14]
cmp dword [ebp - 0x18], ecx
jne 0x417a3a
cmp ecx, 0x7fffffff
jae 0x41869a
mov eax, ecx
mov esi, 0x7fffffff
sub esi, ecx
shr eax, 2
inc eax
mov edx, 4
cmp eax, esi
cmovbe esi, eax
add esi, ecx
xor ecx, ecx
mov eax, esi
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0055c532
mov ecx, dword [ebp - 0x18]
add esp, 4
mov dword [ebp - 0x28], eax
test ecx, ecx
je 0x417a26
shl ecx, 2
push ecx
push dword [ebp - 0x1c]
push eax
call fcn.00560500
add esp, 0xc
push dword [ebp - 0x1c]
call fcn.0055c53b
mov eax, dword [ebp - 0x28]
add esp, 4
mov dword [ebp - 0x1c], eax
mov dword [ebp - 0x14], esi
push 0x40
call fcn.0055c4f4
mov esi, eax
add esp, 4
mov dword [ebp - 0x194], esi
mov byte [ebp - 4], 9
test esi, esi
je 0x417ad3
mov eax, dword [ebp - 0x7c]
mov dword [esi], eax
mov eax, dword [ebp - 0x78]
mov dword [esi + 4], eax
mov eax, dword [ebp - 0x74]
mov ecx, dword [ebp - 0x70]
mov dword [esi + 8], eax
mov dword [esi + 0xc], ecx
mov eax, dword [ebp - 0x6c]
mov ecx, dword [ebp - 0x68]
mov dword [esi + 0x10], eax
mov dword [esi + 0x14], ecx
mov eax, dword [ebp - 0x64]
mov ecx, dword [ebp - 0x60]
mov dword [esi + 0x18], eax
mov dword [esi + 0x1c], ecx
mov eax, dword [ebp - 0x5c]
mov ecx, dword [ebp - 0x58]
mov dword [esi + 0x20], eax
lea eax, [ebp - 0x54]
mov dword [esi + 0x24], ecx
lea ecx, [esi + 0x28]
push eax
call fcn.00435ad0
mov eax, dword [ebp - 0x48]
mov dword [esi + 0x34], eax
mov al, byte [ebp - 0x44]
mov byte [esi + 0x38], al
mov al, byte [ebp - 0x43]
mov byte [esi + 0x39], al
mov al, byte [ebp - 0x42]
mov byte [esi + 0x3a], al
mov al, byte [ebp - 0x41]
mov byte [esi + 0x3b], al
mov al, byte [ebp - 0x40]
mov byte [esi + 0x3c], al
mov al, byte [ebp - 0x3f]
mov byte [esi + 0x3d], al
mov al, byte [ebp - 0x3e]
mov byte [esi + 0x3e], al
mov al, byte [ebp - 0x3d]
mov byte [esi + 0x3f], al
jmp 0x417ad5
xor esi, esi
mov ecx, dword [ebp - 0x18]
mov byte [ebp - 4], 2
lea eax, [ecx + 1]
mov dword [ebp - 0x18], eax
mov eax, dword [ebp - 0x1c]
mov dword [eax + ecx*4], esi
push dword [ebp - 0x54]
call fcn.0055c53b
mov esi, dword [ebp - 0x2c]
add esp, 4
inc esi
jmp 0x416f2f
lea ecx, [ebp - 0xc8]
call fcn.00415110
lea ecx, [ebp - 0x160]
mov byte [ebp - 4], 0xa
call fcn.00415110
mov edx, dword [ebp + 8]
mov byte [ebp - 4], 0xb
mov eax, dword [edx + 0x1c]
lea esi, [edx - 0xc]
mov ecx, dword [edx + 0x20]
mov dword [ebp - 0xa0], eax
mov al, byte [edx + 0x15]
mov byte [ebp - 0x98], al
mov eax, dword [edx + 0xc]
mov dword [ebp - 0x9c], ecx
mov ecx, 0x400
cmp eax, ecx
cmova eax, ecx
mov ecx, esi
mov dword [ebp - 0xac], eax
mov al, byte [edx + 0x14]
mov byte [ebp - 0xa8], al
mov al, byte [edx + 0x9a]
mov byte [ebp - 0xa7], al
mov byte [ebp - 0x13f], al
lea eax, [ebp - 0xc8]
push eax
call fcn.00415b20
mov dword [ebp - 0x3c], eax
test eax, eax
je 0x417c7c
mov ecx, dword [ebp - 0x12c]
test ecx, ecx
je 0x417bb5
mov eax, dword [ebp - 0x124]
lea eax, [eax*2 + 2]
push eax
push 0
push ecx
call fcn.00560a80
mov ecx, dword [ebp - 0x12c]
add esp, 0xc
mov dword [ebp - 0x128], 0
push ecx
call fcn.0055c53b
push dword [ebp - 0x154]
call fcn.0055c53b
add esp, 8
lea ecx, [ebp - 0x160]
call fcn.0040eb50
mov ecx, dword [ebp - 0x94]
test ecx, ecx
je 0x417c07
mov eax, dword [ebp - 0x8c]
lea eax, [eax*2 + 2]
push eax
push 0
push ecx
call fcn.00560a80
mov ecx, dword [ebp - 0x94]
add esp, 0xc
mov dword [ebp - 0x90], 0
push ecx
call fcn.0055c53b
push dword [ebp - 0xbc]
call fcn.0055c53b
add esp, 8
lea ecx, [ebp - 0xc8]
call fcn.0040eb50
push dword [ebp - 0x38]
call fcn.0055c53b
mov esi, dword [ebp - 0x18]
add esp, 4
test esi, esi
je 0x417c5a
mov eax, dword [ebp - 0x1c]
dec esi
mov edi, dword [eax + esi*4]
test edi, edi
je 0x417c56
push dword [edi + 0x28]
call fcn.0055c53b
push 0x40
push edi
call fcn.0055c524
add esp, 0xc
test esi, esi
jne 0x417c38
push dword [ebp - 0x1c]
call fcn.0055c53b
mov eax, dword [ebp - 0x3c]
add esp, 4
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
lea eax, [ebp - 0x160]
mov ecx, esi
push eax
call fcn.00415910
mov dword [ebp - 0x3c], eax
test eax, eax
je 0x417d94
mov ecx, dword [ebp - 0x12c]
test ecx, ecx
je 0x417cc8
mov eax, dword [ebp - 0x124]
lea eax, [eax*2 + 2]
push eax
push 0
push ecx
call fcn.00560a80
mov ecx, dword [ebp - 0x12c]
add esp, 0xc
mov dword [ebp - 0x128], 0
push ecx
call fcn.0055c53b
push dword [ebp - 0x154]
call fcn.0055c53b
add esp, 8
lea ecx, [ebp - 0x160]
call fcn.0040eb50
mov ecx, dword [ebp - 0x94]
test ecx, ecx
je 0x417d1a
mov eax, dword [ebp - 0x8c]
lea eax, [eax*2 + 2]
push eax
push 0
push ecx
call fcn.00560a80
mov ecx, dword [ebp - 0x94]
add esp, 0xc
mov dword [ebp - 0x90], 0
push ecx
call fcn.0055c53b
push dword [ebp - 0xbc]
call fcn.0055c53b
add esp, 8
lea ecx, [ebp - 0xc8]
call fcn.0040eb50
push dword [ebp - 0x38]
call fcn.0055c53b
mov esi, dword [ebp - 0x18]
add esp, 4
test esi, esi
je 0x417d72
jmp 0x417d50
mov eax, dword [ebp - 0x1c]
dec esi
mov edi, dword [eax + esi*4]
test edi, edi
je 0x417d6e
push dword [edi + 0x28]
call fcn.0055c53b
push 0x40
push edi
call fcn.0055c524
add esp, 0xc
test esi, esi
jne 0x417d50
push dword [ebp - 0x1c]
call fcn.0055c53b
mov eax, dword [ebp - 0x3c]
add esp, 4
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
mov dword [ebp - 0x80], 0
mov eax, dword [ebx]
lea ecx, [ebp - 0x80]
push ecx
push 0x5b805c
push ebx
mov byte [ebp - 4], 0xc
call dword [eax]
mov edx, dword [ebp - 0x94]
xor cl, cl
mov byte [ebp - 0x97], cl
test edx, edx
je 0x417de8
mov eax, dword [ebp - 0x8c]
lea eax, [eax*2 + 2]
push eax
push 0
push edx
call fcn.00560a80
mov cl, byte [ebp - 0x97]
add esp, 0xc
mov dword [ebp - 0x90], 0
mov eax, dword [ebp - 0x80]
test eax, eax
je 0x417f3d
mov dword [ebp - 0x2c], 0
mov ecx, dword [eax]
lea edx, [ebp - 0x2c]
push edx
lea edx, [ebp - 0x88]
mov byte [ebp - 4], 0xd
push edx
push eax
call dword [ecx + 0xc]
mov dword [ebp - 0x3c], eax
test eax, eax
je 0x417ed4
mov eax, dword [ebp - 0x2c]
test eax, eax
je 0x417e4a
push eax
call dword [sym.imp.OLEAUT32.dll_VariantInit]
add eax, eax
push eax
push 0
push dword [ebp - 0x2c]
call fcn.00560a80
mov esi, dword [sym.imp.OLEAUT32.dll_SysStringLen]
add esp, 0xc
push dword [ebp - 0x2c]
call esi
xor eax, eax
mov dword [ebp - 0x2c], eax
jmp 0x417e50
mov esi, dword [sym.imp.OLEAUT32.dll_SysStringLen]
push eax
call esi
mov eax, dword [ebp - 0x80]
mov byte [ebp - 4], 0xe
test eax, eax
je 0x417e64
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
lea ecx, [ebp - 0x160]
call fcn.0040ec40
lea ecx, [ebp - 0xc8]
call fcn.0040ec40
push dword [ebp - 0x38]
call fcn.0055c53b
mov esi, dword [ebp - 0x18]
add esp, 4
test esi, esi
je 0x417eb2
lea esp, [esp]
mov eax, dword [ebp - 0x1c]
dec esi
mov edi, dword [eax + esi*4]
test edi, edi
je 0x417eae
push dword [edi + 0x28]
call fcn.0055c53b
push 0x40
push edi
call fcn.0055c524
add esp, 0xc
test esi, esi
jne 0x417e90
push dword [ebp - 0x1c]
call fcn.0055c53b
mov eax, dword [ebp - 0x3c]
add esp, 4
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
mov eax, dword [ebp - 0x88]
test eax, eax
setne byte [ebp - 0x97]
test eax, eax
je 0x417efa
mov eax, dword [ebp - 0x2c]
test eax, eax
je 0x417efd
push eax
lea ecx, [ebp - 0x94]
call fcn.00435c90
mov eax, dword [ebp - 0x2c]
mov byte [ebp - 4], 0xc
test eax, eax
je 0x417f2e
push eax
call dword [sym.imp.OLEAUT32.dll_VariantInit]
add eax, eax
push eax
push 0
push dword [ebp - 0x2c]
call fcn.00560a80
mov esi, dword [sym.imp.OLEAUT32.dll_SysStringLen]
add esp, 0xc
push dword [ebp - 0x2c]
call esi
xor eax, eax
mov dword [ebp - 0x2c], eax
jmp 0x417f34
mov esi, dword [sym.imp.OLEAUT32.dll_SysStringLen]
push eax
call esi
mov cl, byte [ebp - 0x97]
mov esi, dword [ebp + 8]
mov dl, byte [esi + 0x87]
mov byte [ebp - 0x1d], dl
xor dl, dl
mov byte [ebp + 0xb], dl
test cl, cl
jne 0x417f7d
cmp byte [esi + 0x1f5], dl
je 0x417fba
lea eax, [esi + 0x1f8]
mov byte [ebp - 0x97], 1
push eax
lea ecx, [ebp - 0x94]
call fcn.00435c20
mov cl, byte [ebp - 0x97]
test cl, cl
je 0x417fb7
cmp byte [esi + 0x88], 0
je 0x417f8e
mov dl, byte [esi + 0x89]
jmp 0x417f94
mov dl, byte [esi + 0x1f5]
mov byte [ebp + 0xb], dl
mov byte [ebp - 0x1d], 1
test dl, dl
je 0x417fba
lea eax, [ebp - 0x94]
mov byte [ebp - 0x12f], cl
push eax
lea ecx, [ebp - 0x12c]
call fcn.00435c20
mov dl, byte [ebp + 0xb]
cmp dword [ebp + 0x10], 2
mov ecx, 0
movzx eax, byte [ebp - 0x1d]
mov ebx, 5
mov dh, byte [ebp - 0x1e]
cmovae ecx, eax
mov eax, dword [esi + 0x34]
cmp eax, 0xffffffff
mov byte [ebp - 0x164], dh
mov dh, byte [ebp - 0x1f]
cmove eax, ebx
cmp byte [esi + 0x87], 0
lea ebx, [ebp - 0xc8]
mov byte [ebp - 0x163], dh
mov dh, byte [ebp - 0x20]
mov byte [ebp - 0x162], dh
mov dh, byte [ebp - 0x21]
mov dword [ebp - 0x190], ebx
mov ebx, dword [ebp + 0x14]
mov byte [ebp - 0x161], dh
jne 0x418024
test dl, dl
jne 0x418024
mov dword [ebp - 0x18c], 0
jmp 0x418030
lea edx, [ebp - 0x160]
mov dword [ebp - 0x18c], edx
test eax, eax
je 0x41804a
cmp byte [esi + 0x70], 0
je 0x41804a
cmp byte [ebp - 0xaf], 0
mov byte [ebp - 0x188], 1
je 0x418051
mov byte [ebp - 0x188], 0
cmp eax, 8
mov byte [ebp - 0x180], cl
mov eax, dword [esi + 0x38]
mov ecx, dword [esi + 0x78]
setge byte [ebp - 0x187]
mov dword [ebp - 0x184], eax
mov eax, dword [esi + 0x74]
mov dword [ebp - 0x178], eax
mov eax, dword [esi + 0x7c]
mov dword [ebp - 0x170], eax
mov al, byte [esi + 0x85]
mov byte [ebp - 0x168], al
mov al, byte [esi + 0x86]
mov byte [ebp - 0x167], al
mov al, byte [esi + 0x9b]
mov dword [ebp - 0x174], ecx
mov ecx, dword [esi + 0x80]
mov byte [ebp - 0x166], al
mov al, byte [esi + 0x9a]
mov dword [ebp - 0x16c], ecx
lea ecx, [ebp - 0x1d4]
push 0x10000
mov byte [ebp - 0x165], al
mov dword [ebp - 0x1d4], 0
mov dword [ebp - 0x1d0], 0
mov dword [ebp - 0x1c0], 0
mov dword [ebp - 0x1b4], 0
mov dword [ebp - 0x1a8], 0
mov dword [ebp - 0x1a4], 0
mov dword [ebp - 0x19c], 0
mov dword [ebp - 0x198], 0
call fcn.00431910
lea ecx, [ebp - 0x2e8]
call fcn.00414ee0
mov dword [ebp - 0x84], 0
mov eax, dword [ebx]
lea ecx, [ebp - 0x84]
push ecx
push 0x5b804c
push ebx
mov byte [ebp - 4], 0x11
call dword [eax]
push dword [ebp - 0x84]
lea eax, [ebp - 0x190]
push eax
push ebx
push dword [ebp + 0xc]
lea eax, [ebp - 0x2e8]
push eax
lea eax, [ebp - 0x1ec]
push eax
lea eax, [ebp - 0x1c]
push eax
push edi
push dword [esi + 0x9c]
call fcn.00421b10
mov ebx, eax
add esp, 0x24
test ebx, ebx
je 0x4183c8
mov eax, dword [ebp - 0x84]
mov byte [ebp - 4], 0x12
test eax, eax
je 0x41819b
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
push dword [ebp - 0x1f8]
call fcn.0055c53b
push dword [ebp - 0x204]
call fcn.0055c53b
push dword [ebp - 0x210]
call fcn.0055c53b
push dword [ebp - 0x21c]
call fcn.0055c53b
push dword [ebp - 0x228]
call fcn.0055c53b
push dword [ebp - 0x234]
call fcn.0055c53b
push dword [ebp - 0x240]
call fcn.0055c53b
push dword [ebp - 0x24c]
call fcn.0055c53b
push dword [ebp - 0x258]
call fcn.0055c53b
push dword [ebp - 0x264]
call fcn.0055c53b
push dword [ebp - 0x270]
call fcn.0055c53b
add esp, 0x2c
lea ecx, [ebp - 0x27c]
call fcn.004153d0
push dword [ebp - 0x288]
call fcn.0055c53b
add esp, 4
lea ecx, [ebp - 0x294]
call fcn.004152d0
push dword [ebp - 0x2a0]
call fcn.0055c53b
push dword [ebp - 0x2ac]
call fcn.0055c53b
push dword [ebp - 0x2b8]
call fcn.0055c53b
push dword [ebp - 0x2c4]
call fcn.0055c53b
push dword [ebp - 0x2d0]
call fcn.0055c53b
push dword [ebp - 0x2dc]
call fcn.0055c53b
push dword [ebp - 0x2e8]
call fcn.0055c53b
add esp, 0x1c
mov ecx, dword [ebp - 0x198]
mov byte [ebp - 4], 0x13
test ecx, ecx
je 0x41829f
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov ecx, dword [ebp - 0x19c]
mov byte [ebp - 4], 0x14
test ecx, ecx
je 0x4182b3
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
lea ecx, [ebp - 0x1d4]
call fcn.00431bc0
mov eax, dword [ebp - 0x80]
mov byte [ebp - 4], 0x15
test eax, eax
je 0x4182cf
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov ecx, dword [ebp - 0x12c]
test ecx, ecx
je 0x418302
mov eax, dword [ebp - 0x124]
lea eax, [eax*2 + 2]
push eax
push 0
push ecx
call fcn.00560a80
mov ecx, dword [ebp - 0x12c]
add esp, 0xc
mov dword [ebp - 0x128], 0
push ecx
call fcn.0055c53b
push dword [ebp - 0x154]
call fcn.0055c53b
add esp, 8
lea ecx, [ebp - 0x160]
call fcn.0040eb50
mov ecx, dword [ebp - 0x94]
test ecx, ecx
je 0x418354
mov eax, dword [ebp - 0x8c]
lea eax, [eax*2 + 2]
push eax
push 0
push ecx
call fcn.00560a80
mov ecx, dword [ebp - 0x94]
add esp, 0xc
mov dword [ebp - 0x90], 0
push ecx
call fcn.0055c53b
push dword [ebp - 0xbc]
call fcn.0055c53b
add esp, 8
lea ecx, [ebp - 0xc8]
call fcn.0040eb50
push dword [ebp - 0x38]
call fcn.0055c53b
mov esi, dword [ebp - 0x18]
add esp, 4
test esi, esi
je 0x4183a7
mov eax, dword [ebp - 0x1c]
dec esi
mov edi, dword [eax + esi*4]
test edi, edi
je 0x4183a3
push dword [edi + 0x28]
call fcn.0055c53b
push 0x40
push edi
call fcn.0055c524
add esp, 0xc
test esi, esi
jne 0x418385
push dword [ebp - 0x1c]
call fcn.0055c53b
add esp, 4
mov eax, ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
mov esi, dword [ebp - 0x18]
test esi, esi
je 0x4183f2
nop
mov eax, dword [ebp - 0x1c]
dec esi
mov edi, dword [eax + esi*4]
test edi, edi
je 0x4183ee
push dword [edi + 0x28]
call fcn.0055c53b
push 0x40
push edi
call fcn.0055c524
add esp, 0xc
test esi, esi
jne 0x4183d0
push dword [ebp - 0x1c]
mov dword [ebp - 0x18], 0
call fcn.0055c53b
add esp, 4
mov dword [ebp - 0x1c], 0
lea eax, [ebp - 0x180]
mov dword [ebp - 0x18], 0
lea ecx, [ebp - 0x1ec]
mov dword [ebp - 0x14], 0
push eax
push dword [ebp - 0x18c]
lea eax, [ebp - 0x2e8]
push eax
call fcn.0041d150
mov ebx, eax
mov eax, dword [ebp - 0x84]
mov byte [ebp - 4], 0x16
test eax, eax
je 0x41844e
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
push dword [ebp - 0x1f8]
call fcn.0055c53b
push dword [ebp - 0x204]
call fcn.0055c53b
push dword [ebp - 0x210]
call fcn.0055c53b
push dword [ebp - 0x21c]
call fcn.0055c53b
push dword [ebp - 0x228]
call fcn.0055c53b
push dword [ebp - 0x234]
call fcn.0055c53b
push dword [ebp - 0x240]
call fcn.0055c53b
push dword [ebp - 0x24c]
call fcn.0055c53b
push dword [ebp - 0x258]
call fcn.0055c53b
push dword [ebp - 0x264]
call fcn.0055c53b
push dword [ebp - 0x270]
call fcn.0055c53b
add esp, 0x2c
lea ecx, [ebp - 0x27c]
call fcn.004153d0
push dword [ebp - 0x288]
call fcn.0055c53b
add esp, 4
lea ecx, [ebp - 0x294]
call fcn.004152d0
push dword [ebp - 0x2a0]
call fcn.0055c53b
push dword [ebp - 0x2ac]
call fcn.0055c53b
push dword [ebp - 0x2b8]
call fcn.0055c53b
push dword [ebp - 0x2c4]
call fcn.0055c53b
push dword [ebp - 0x2d0]
call fcn.0055c53b
push dword [ebp - 0x2dc]
call fcn.0055c53b
push dword [ebp - 0x2e8]
call fcn.0055c53b
add esp, 0x1c
mov ecx, dword [ebp - 0x198]
mov byte [ebp - 4], 0x17
test ecx, ecx
je 0x418552
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
mov ecx, dword [ebp - 0x19c]
mov byte [ebp - 4], 0x18
test ecx, ecx
je 0x418566
mov eax, dword [ecx]
push ecx
call dword [eax + 8]
lea ecx, [ebp - 0x1d4]
call fcn.00431bc0
mov eax, dword [ebp - 0x80]
mov byte [ebp - 4], 0x19
test eax, eax
je 0x418582
mov ecx, dword [eax]
push eax
call dword [ecx + 8]
mov ecx, dword [ebp - 0x12c]
test ecx, ecx
je 0x4185b5
mov eax, dword [ebp - 0x124]
lea eax, [eax*2 + 2]
push eax
push 0
push ecx
call fcn.00560a80
mov ecx, dword [ebp - 0x12c]
add esp, 0xc
mov dword [ebp - 0x128], 0
push ecx
call fcn.0055c53b
push dword [ebp - 0x154]
call fcn.0055c53b
add esp, 8
lea ecx, [ebp - 0x160]
call fcn.0040eb50
mov ecx, dword [ebp - 0x94]
test ecx, ecx
je 0x418607
mov eax, dword [ebp - 0x8c]
lea eax, [eax*2 + 2]
push eax
push 0
push ecx
call fcn.00560a80
mov ecx, dword [ebp - 0x94]
add esp, 0xc
mov dword [ebp - 0x90], 0
push ecx
call fcn.0055c53b
push dword [ebp - 0xbc]
call fcn.0055c53b
add esp, 8
lea ecx, [ebp - 0xc8]
call fcn.0040eb50
push dword [ebp - 0x38]
call fcn.0055c53b
mov esi, dword [ebp - 0x18]
add esp, 4
test esi, esi
je 0x41865a
mov eax, dword [ebp - 0x1c]
dec esi
mov edi, dword [eax + esi*4]
test edi, edi
je 0x418656
push dword [edi + 0x28]
call fcn.0055c53b
push 0x40
push edi
call fcn.0055c524
add esp, 0xc
test esi, esi
jne 0x418638
push dword [ebp - 0x1c]
call fcn.0055c53b
add esp, 4
mov eax, ebx
mov ecx, dword [ebp - 0xc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 0x10
push 0x5f7c98
lea eax, [ebp - 0x120]
mov dword [ebp - 0x120], 0x7e5
push eax
call fcn.00560f5e
int3