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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x4c
push ebx
mov ebx, dword [ebp + 0x10]
push esi
mov esi, dword [ebp + 8]
mov eax, dword [esi + 0x154]
push edi
mov dword [esp + 0x30], eax
cmp ebx, dword [esi + 0x90]
jne 0x403d4a
lea ecx, [esi + 0x110]
lea edx, [esi + 0x114]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x24], edx
jmp 0x403d5b
mov eax, dword [esi + 0x11c]
mov dword [esp + 0x18], eax
add eax, 4
mov dword [esp + 0x24], eax
mov eax, dword [ebp + 0x14]
mov ecx, dword [esp + 0x18]
mov dword [ecx], eax
mov eax, dword [ebp + 0x14]
mov edi, dword [ebp + 0x18]
lea edx, [esp + 0x14]
push edx
push edi
push eax
mov dword [esp + 0x20], eax
mov eax, dword [ebx + 4]
push ebx
call eax
mov ecx, dword [esp + 0x24]
mov edx, dword [esp + 0x34]
add eax, 5
add esp, 0x10
mov dword [edx], ecx
cmp eax, 0x12
ja case.default.0x403d94
jmp dword [eax*4 + 0x404918]
mov eax, dword [ebx + 0x40]
mov edx, dword [ebx + 0x2c]
sub ecx, eax
push ecx
mov ecx, dword [ebp + 0x14]
add eax, ecx
push eax
push ebx
call edx
add esp, 0xc
mov byte [esp + 0x12], al
test al, al
je 0x403df3
mov eax, dword [esi + 0x3c]
test eax, eax
je 0x403dd4
mov edx, dword [esi + 4]
push 1
lea ecx, [esp + 0x16]
push ecx
push edx
call eax
add esp, 0xc
jmp 0x403e91
cmp dword [esi + 0x50], 0
je 0x403e91
mov eax, dword [ebp + 0x14]
push eax
mov eax, dword [esp + 0x18]
call fcn.00407be0
add esp, 4
jmp 0x403e91
mov eax, dword [ebx + 0x40]
mov edi, dword [esp + 0x14]
mov ecx, dword [ebp + 0x14]
mov esi, dword [esp + 0x30]
sub edi, eax
add eax, ecx
add esi, 0x50
push eax
mov eax, esi
call fcn.00408ba0
add esp, 4
test eax, eax
je 0x4047fe
mov edx, dword [esi + 0xc]
cmp edx, dword [esi + 8]
jne 0x403e30
call fcn.00408cb0
test al, al
je 0x4047fe
mov eax, dword [esi + 0xc]
mov byte [eax], 0
inc dword [esi + 0xc]
mov esi, dword [esi + 0x10]
mov dword [esp + 0x2c], esi
test esi, esi
je 0x4047fe
mov edi, dword [esp + 0x30]
push 0
push esi
call fcn.00408860
mov ecx, dword [edi + 0x60]
add esp, 8
cmp byte [edi + 0x81], 0
mov esi, eax
mov dword [edi + 0x5c], ecx
je 0x403edf
cmp byte [edi + 0x82], 0
jne 0x403edf
test esi, esi
jne 0x403ef1
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x78]
test ecx, ecx
je 0x403ec4
mov edx, dword [esp + 0x2c]
mov eax, dword [eax + 4]
push esi
push edx
push eax
call ecx
add esp, 0xc
mov esi, dword [ebp + 8]
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov dword [ebp + 0x14], ecx
mov dword [eax], ecx
mov eax, dword [esi + 0x1d0]
sub eax, 2
je 0x40490c
sub eax, 1
jne 0x403d64
mov eax, dword [ebp + 0x1c]
mov dword [eax], ecx
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [eax + 0x50], 0
je 0x403e8e
mov ecx, dword [ebp + 0x14]
mov eax, dword [esp + 0x14]
mov esi, dword [ebp + 8]
push ecx
call fcn.00407be0
add esp, 4
jmp 0x403e91
test esi, esi
je 0x4047b9
cmp byte [esi + 0x22], 0
je 0x4047c5
cmp byte [esi + 0x20], 0
jne 0x4047d1
cmp dword [esi + 0x1c], 0
jne 0x4047dd
cmp dword [esi + 4], 0
mov edi, dword [ebp + 8]
je 0x403f6c
cmp byte [edi + 0x124], 0
jne 0x403f54
mov eax, dword [edi + 0x78]
test eax, eax
je 0x403f33
mov edx, dword [esi]
mov ecx, dword [edi + 4]
push 0
push edx
push ecx
call eax
add esp, 0xc
mov esi, edi
jmp 0x403e91
cmp dword [edi + 0x50], 0
je 0x403e8e
mov edx, dword [ebp + 0x14]
mov eax, dword [esp + 0x14]
push edx
mov esi, edi
call fcn.00407be0
add esp, 4
jmp 0x403e91
push esi
call fcn.00407140
add esp, 4
test eax, eax
jne 0x404911
mov esi, edi
jmp 0x403e91
cmp dword [edi + 0x70], 0
je 0x403f33
mov byte [esi + 0x20], 1
call fcn.00408000
mov byte [esi + 0x20], 0
test eax, eax
je 0x4047fe
mov ecx, dword [esi + 0x18]
mov edx, dword [esi + 0x10]
push ecx
mov ecx, dword [esi + 0x14]
push edx
mov edx, dword [edi + 0x74]
push ecx
push eax
mov eax, dword [edi + 0x70]
push edx
call eax
add esp, 0x14
test eax, eax
je 0x4047e9
mov ecx, dword [edi + 0x1a0]
mov dword [edi + 0x19c], ecx
mov esi, edi
jmp 0x403e91
mov edi, dword [esi + 0x160]
test edi, edi
je 0x403fcf
mov eax, dword [edi]
mov dword [esi + 0x160], eax
jmp 0x403ffe
mov ecx, dword [esi + 0xc]
push 0x30
call ecx
mov edi, eax
add esp, 4
test edi, edi
je 0x4047fe
mov edx, dword [esi + 0xc]
push 0x20
call edx
add esp, 4
mov dword [edi + 0x24], eax
test eax, eax
je 0x4047f5
add eax, 0x20
mov dword [edi + 0x28], eax
xor ecx, ecx
mov dword [edi + 0x2c], ecx
lea eax, [edi + 0x2c]
mov dword [esp + 0x38], eax
mov eax, dword [esi + 0x15c]
mov dword [edi], eax
mov dword [esi + 0x15c], edi
mov dword [edi + 0x10], ecx
mov dword [edi + 0x14], ecx
mov ecx, dword [ebx + 0x40]
mov edx, dword [ebp + 0x14]
lea eax, [ecx + edx]
push eax
mov dword [edi + 4], eax
mov eax, dword [ebx + 0x1c]
push ebx
call eax
mov dword [edi + 8], eax
inc dword [esi + 0x128]
mov ecx, dword [edi + 4]
mov eax, dword [edi + 8]
add eax, ecx
mov dword [esp + 0x28], ecx
mov ecx, dword [edi + 0x24]
mov dword [esp + 0x24], ecx
mov edx, dword [edi + 0x28]
dec edx
push edx
lea ecx, [esp + 0x28]
push ecx
push eax
lea edx, [esp + 0x34]
push edx
mov dword [esp + 0x40], eax
mov eax, dword [ebx + 0x38]
push ebx
call eax
mov eax, dword [esp + 0x38]
sub eax, dword [edi + 0x24]
mov ecx, dword [esp + 0x44]
add esp, 0x1c
mov dword [esp + 0x2c], eax
cmp dword [esp + 0x20], ecx
je 0x4040e9
nop
mov ecx, dword [edi + 0x24]
mov eax, dword [edi + 0x28]
mov edx, dword [esi + 0x10]
sub eax, ecx
add eax, eax
push eax
push ecx
mov dword [esp + 0x3c], eax
call edx
add esp, 8
test eax, eax
je 0x4047fe
mov ecx, dword [esp + 0x34]
lea edx, [eax + ecx]
mov ecx, dword [esp + 0x2c]
mov dword [edi + 0x24], eax
mov dword [edi + 0x28], edx
add eax, ecx
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x1c], eax
mov edx, dword [edi + 0x28]
dec edx
push edx
lea eax, [esp + 0x20]
push eax
mov eax, dword [ebx + 0x38]
push ecx
lea edx, [esp + 0x2c]
push edx
push ebx
call eax
mov ecx, dword [esp + 0x30]
sub ecx, dword [edi + 0x24]
mov edx, dword [esp + 0x3c]
add esp, 0x14
mov dword [esp + 0x2c], ecx
cmp dword [esp + 0x20], edx
jne 0x404080
mov eax, dword [esp + 0x2c]
mov ecx, dword [edi + 0x24]
mov dword [edi + 0x18], eax
lea eax, [edi + 0xc]
mov dword [eax], ecx
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x38]
push ecx
push eax
mov byte [edx], 0
mov edx, dword [ebp + 0x14]
push edx
push ebx
push esi
mov dword [esp + 0x48], eax
call fcn.00404970
add esp, 0x14
test eax, eax
jne 0x404911
mov eax, dword [esi + 0x34]
test eax, eax
je 0x40414d
mov ecx, dword [esi + 0x178]
mov edx, dword [esp + 0x34]
push ecx
mov ecx, dword [edx]
mov edx, dword [esi + 4]
push ecx
push edx
call eax
add esp, 0xc
lea ecx, [esi + 0x190]
call fcn.00408b20
jmp 0x403e91
cmp dword [esi + 0x50], 0
je 0x404163
mov eax, dword [ebp + 0x14]
push eax
mov eax, dword [esp + 0x18]
call fcn.00407be0
add esp, 4
lea ecx, [esi + 0x190]
call fcn.00408b20
jmp 0x403e91
mov edi, dword [ebx + 0x40]
add edi, dword [ebp + 0x14]
mov ecx, dword [ebx + 0x1c]
push edi
push ebx
mov dword [esp + 0x30], 0
mov byte [esp + 0x1b], 1
call ecx
add eax, edi
add esi, 0x190
push edi
mov edi, eax
mov eax, esi
mov dword [esp + 0x38], esi
call fcn.00408ba0
add esp, 0xc
test eax, eax
je 0x4041cf
mov edx, dword [esi + 0xc]
cmp edx, dword [esi + 8]
jne 0x4041c3
call fcn.00408cb0
mov esi, dword [esp + 0x2c]
test al, al
jne 0x4041c3
xor eax, eax
jmp 0x4041cf
mov eax, dword [esi + 0xc]
mov byte [eax], 0
inc dword [esi + 0xc]
mov eax, dword [esi + 0x10]
mov dword [esp + 0x40], eax
test eax, eax
je 0x4047fe
mov edi, dword [ebp + 8]
mov ecx, dword [edi + 0x19c]
lea edx, [esp + 0x28]
push edx
lea eax, [esp + 0x44]
push eax
mov dword [edi + 0x1a0], ecx
mov ecx, dword [ebp + 0x14]
push ecx
push ebx
push edi
call fcn.00404970
add esp, 0x14
test eax, eax
jne 0x404911
mov eax, dword [edi + 0x34]
mov edx, dword [edi + 0x19c]
mov dword [edi + 0x1a0], edx
test eax, eax
je 0x404236
mov ecx, dword [edi + 0x178]
mov edx, dword [esp + 0x40]
push ecx
mov ecx, dword [edi + 4]
push edx
push ecx
call eax
add esp, 0xc
xor al, al
jmp 0x40423a
mov al, byte [esp + 0x13]
cmp dword [edi + 0x38], 0
je 0x404265
cmp dword [edi + 0x34], 0
je 0x404252
mov edx, dword [esp + 0x24]
mov eax, dword [edx]
mov ecx, dword [esp + 0x18]
mov dword [ecx], eax
mov edx, dword [esp + 0x40]
mov eax, dword [edi + 4]
mov ecx, dword [edi + 0x38]
push edx
push eax
call ecx
add esp, 8
jmp 0x404285
test al, al
je 0x404285
cmp dword [edi + 0x50], 0
je 0x404285
mov edx, dword [ebp + 0x14]
mov eax, dword [esp + 0x14]
push edx
mov esi, edi
call fcn.00407be0
mov esi, dword [esp + 0x30]
add esp, 4
mov ecx, esi
call fcn.00408b20
mov esi, dword [esp + 0x28]
test esi, esi
je 0x4042d0
mov ecx, dword [edi + 0x68]
mov eax, esi
mov dword [esp + 0x38], eax
test ecx, ecx
je 0x4042b1
mov eax, dword [esi]
mov edx, dword [eax]
mov eax, dword [edi + 4]
push edx
push eax
call ecx
add esp, 8
mov eax, esi
mov edx, dword [edi + 0x168]
lea ecx, [esi + 4]
mov esi, dword [ecx]
mov dword [ecx], edx
mov dword [edi + 0x168], eax
mov ecx, dword [eax]
mov edx, dword [eax + 8]
mov dword [ecx + 4], edx
test esi, esi
jne 0x404294
cmp dword [edi + 0x128], 0
je 0x40480a
mov esi, edi
jmp 0x403e91
mov eax, dword [ebp + 0xc]
cmp dword [esi + 0x128], eax
je 0x404762
mov edi, dword [esi + 0x15c]
mov ecx, dword [edi]
mov edx, dword [esi + 0x160]
mov dword [esi + 0x15c], ecx
mov dword [edi], edx
mov ecx, dword [ebp + 0x14]
mov dword [esi + 0x160], edi
mov eax, dword [ebx + 0x40]
mov edx, dword [ebx + 0x1c]
lea eax, [ecx + eax*2]
push eax
push ebx
mov dword [esp + 0x30], eax
call edx
add esp, 8
cmp eax, dword [edi + 8]
jne 0x404827
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x20], ecx
mov ecx, dword [edi + 4]
mov edx, dword [esp + 0x20]
mov dword [esp + 0x2c], ecx
cmp eax, 4
jb 0x404374
jmp 0x404350
mov ecx, dword [ecx]
cmp ecx, dword [edx]
jne 0x404827
mov ecx, dword [esp + 0x2c]
sub eax, 4
add edx, 4
add ecx, 4
mov dword [esp + 0x20], edx
mov dword [esp + 0x2c], ecx
cmp eax, 4
jae 0x404350
test eax, eax
je 0x4043ac
mov dl, byte [edx]
cmp dl, byte [ecx]
jne 0x404827
cmp eax, 1
jbe 0x4043ac
mov edx, dword [esp + 0x20]
mov dl, byte [edx + 1]
cmp dl, byte [ecx + 1]
jne 0x404827
cmp eax, 2
jbe 0x4043ac
mov eax, dword [esp + 0x20]
mov dl, byte [eax + 2]
cmp dl, byte [ecx + 2]
jne 0x404827
dec dword [esi + 0x128]
cmp dword [esi + 0x38], 0
je 0x40441f
cmp byte [esi + 0xe8], 0
mov edx, dword [edi + 0x10]
je 0x40440d
test edx, edx
je 0x40440d
mov eax, dword [edi + 0x1c]
mov cl, byte [edx]
add eax, dword [edi + 0xc]
test cl, cl
je 0x4043de
inc edx
mov byte [eax], cl
mov cl, byte [edx]
inc eax
test cl, cl
jne 0x4043d4
cmp byte [esi + 0xe9], 0
mov edx, dword [edi + 0x14]
je 0x40440a
test edx, edx
je 0x40440a
movzx ecx, byte [esi + 0x1c8]
mov byte [eax], cl
mov cl, byte [edx]
inc eax
test cl, cl
je 0x40440a
mov edi, edi
inc edx
mov byte [eax], cl
mov cl, byte [edx]
inc eax
test cl, cl
jne 0x404400
mov byte [eax], 0
mov edx, dword [edi + 0xc]
mov eax, dword [esi + 4]
mov ecx, dword [esi + 0x38]
push edx
push eax
call ecx
add esp, 8
jmp 0x404435
cmp dword [esi + 0x50], 0
je 0x404435
mov edx, dword [ebp + 0x14]
mov eax, dword [esp + 0x14]
push edx
call fcn.00407be0
add esp, 4
cmp dword [edi + 0x2c], 0
je 0x404486
jmp 0x404440
mov ecx, dword [esi + 0x68]
mov eax, dword [edi + 0x2c]
mov dword [esp + 0x2c], eax
test ecx, ecx
je 0x404460
mov edx, dword [eax]
mov eax, dword [edx]
mov edx, dword [esi + 4]
push eax
push edx
call ecx
mov eax, dword [esp + 0x34]
add esp, 8
mov ecx, dword [edi + 0x2c]
mov edx, dword [ecx + 4]
mov dword [edi + 0x2c], edx
mov ecx, dword [esi + 0x168]
mov dword [eax + 4], ecx
mov dword [esi + 0x168], eax
mov edx, dword [eax]
mov eax, dword [eax + 8]
mov dword [edx + 4], eax
cmp dword [edi + 0x2c], 0
jne 0x404440
cmp dword [esi + 0x128], 0
jne 0x403e91
mov eax, dword [ebp + 0x1c]
mov ecx, dword [ebp + 0x18]
mov edx, dword [esp + 0x14]
push eax
push ecx
push edx
push esi
call fcn.00406f40
add esp, 0x10
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebx + 0x28]
push ecx
push ebx
call edx
add esp, 8
test eax, eax
jl 0x40483d
mov edi, dword [esi + 0x3c]
test edi, edi
je 0x4044e7
lea ecx, [esp + 0x3c]
call fcn.00413020
push eax
mov eax, ecx
mov ecx, dword [esi + 4]
push eax
push ecx
call edi
add esp, 0xc
jmp 0x403e91
cmp dword [esi + 0x50], 0
je 0x403e91
mov edx, dword [ebp + 0x14]
mov eax, dword [esp + 0x14]
push edx
call fcn.00407be0
add esp, 4
jmp 0x403e91
mov eax, dword [esi + 0x3c]
test eax, eax
je 0x404527
mov edx, dword [esi + 4]
push 1
lea ecx, [esp + 0x17]
push ecx
push edx
mov byte [esp + 0x1f], 0xa
call eax
add esp, 0xc
jmp 0x403e91
cmp dword [esi + 0x50], 0
je 0x403e91
mov eax, dword [ebp + 0x14]
push eax
mov eax, ecx
call fcn.00407be0
add esp, 4
jmp 0x403e91
mov eax, dword [esi + 0x48]
test eax, eax
je 0x404553
mov ecx, dword [esi + 4]
push ecx
call eax
jmp 0x404564
cmp dword [esi + 0x50], 0
je 0x404567
mov edx, dword [ebp + 0x14]
push edx
mov eax, ecx
call fcn.00407be0
add esp, 4
mov eax, dword [ebp + 0x20]
mov ecx, dword [ebp + 0x1c]
push eax
push ecx
lea edx, [esp + 0x1c]
push edi
push edx
mov eax, ebx
mov ecx, esi
call fcn.004054b0
add esp, 0x10
test eax, eax
jne 0x404911
cmp dword [esp + 0x14], eax
jne 0x403e91
mov dword [esi + 0x108], 0x4053f0
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [esi + 0x3c]
test eax, eax
je case.default.0x403d94
cmp byte [ebx + 0x44], 0
jne 0x404656
mov eax, dword [esi + 0x2c]
mov edx, dword [esi + 0x30]
push edx
mov edx, dword [ebx + 0x38]
mov dword [esp + 0x24], eax
lea eax, [esp + 0x24]
push eax
push ecx
lea ecx, [ebp + 0x14]
push ecx
push ebx
call edx
mov eax, dword [ebp + 0x14]
mov edi, dword [esp + 0x38]
mov ecx, dword [esp + 0x34]
mov dword [edi], eax
mov eax, dword [esi + 0x2c]
mov edx, dword [esi + 4]
add esp, 0x14
sub ecx, eax
push ecx
push eax
mov eax, dword [esi + 0x3c]
push edx
call eax
mov eax, dword [ebp + 0x14]
mov ecx, dword [esp + 0x20]
add esp, 0xc
cmp eax, ecx
je 0x403e91
mov edx, dword [esp + 0x18]
mov dword [edx], eax
mov eax, dword [esi + 0x2c]
mov edx, dword [esi + 0x30]
push edx
mov edx, dword [ebx + 0x38]
mov dword [esp + 0x24], eax
lea eax, [esp + 0x24]
push eax
push ecx
lea ecx, [ebp + 0x14]
push ecx
push ebx
call edx
mov eax, dword [ebp + 0x14]
mov ecx, dword [esp + 0x34]
mov dword [edi], eax
mov eax, dword [esi + 0x2c]
mov edx, dword [esi + 4]
add esp, 0x14
sub ecx, eax
push ecx
push eax
mov eax, dword [esi + 0x3c]
push edx
call eax
mov eax, dword [ebp + 0x14]
mov ecx, dword [esp + 0x20]
add esp, 0xc
cmp eax, ecx
jne 0x404606
jmp 0x403e91
mov edx, ecx
mov ecx, dword [ebp + 0x14]
sub edx, ecx
push edx
push ecx
mov ecx, dword [esi + 4]
push ecx
call eax
add esp, 0xc
jmp 0x403e91
cmp dword [esi + 0x50], 0
je 0x403e91
mov edx, dword [ebp + 0x14]
push edx
mov eax, ecx
call fcn.00407be0
add esp, 4
jmp 0x403e91
mov eax, dword [ebp + 0x14]
push ecx
push eax
push esi
mov ecx, ebx
call fcn.00407a30
add esp, 0xc
test eax, eax
je 0x4047fe
jmp 0x403e91
mov edx, dword [ebp + 0x14]
mov eax, ecx
push esi
mov ecx, ebx
call fcn.00407b40
add esp, 4
test eax, eax
je 0x4047fe
jmp 0x403e91
cmp byte [ebp + 0x20], 0
je 0x4046db
mov ecx, dword [ebp + 0x14]
mov edx, dword [ebp + 0x1c]
mov dword [edx], ecx
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x24]
mov dword [eax], edi
mov eax, dword [esi + 0x3c]
test eax, eax
je 0x4046ff
mov edx, dword [esi + 4]
push 1
lea ecx, [esp + 0x17]
push ecx
push edx
mov byte [esp + 0x1f], 0xa
call eax
add esp, 0xc
jmp 0x404713
cmp dword [esi + 0x50], 0
je 0x404713
mov eax, dword [ebp + 0x14]
push eax
mov eax, edi
call fcn.00407be0
add esp, 4
mov eax, dword [ebp + 0xc]
test eax, eax
je 0x4048d8
cmp dword [esi + 0x128], eax
jne 0x404762
mov ecx, dword [ebp + 0x1c]
mov dword [ecx], edi
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp byte [ebp + 0x20], 0
je 0x40474b
mov eax, dword [ebp + 0x1c]
mov edx, dword [ebp + 0x14]
mov dword [eax], edx
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0xc]
test eax, eax
jle 0x4048d8
cmp dword [esi + 0x128], eax
je 0x4046ca
mov eax, 0xd
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x18]
mov dword [eax], ecx
mov eax, 4
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp byte [ebp + 0x20], 0
jne 0x4046ca
mov eax, 5
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp byte [ebp + 0x20], 0
je 0x4047ad
mov eax, dword [ebp + 0x14]
mov ecx, dword [ebp + 0x1c]
mov dword [ecx], eax
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, 6
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, 0xb
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, 0x18
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, 0xc
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, 0xf
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, 0x15
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [esi + 0x14]
push edi
call edx
add esp, 4
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0x1c]
mov ecx, dword [ebp + 0x18]
mov edx, dword [esp + 0x14]
push eax
push ecx
push edx
push edi
call fcn.00406f40
add esp, 0x10
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x28]
mov dword [eax], ecx
mov eax, 7
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, 0xe
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, 0x11
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp byte [ebp + 0x20], 0
jne 0x40473a
mov eax, dword [esi + 0x3c]
test eax, eax
je 0x4048b7
cmp byte [ebx + 0x44], 0
jne 0x4048a3
mov edx, dword [esi + 0x30]
mov ecx, dword [esi + 0x2c]
push edx
mov edx, dword [ebx + 0x38]
lea eax, [esp + 0x34]
push eax
mov dword [esp + 0x38], ecx
push edi
lea ecx, [ebp + 0x14]
push ecx
push ebx
call edx
mov eax, dword [esi + 0x2c]
mov ecx, dword [esp + 0x44]
mov edx, dword [esi + 4]
add esp, 0x14
sub ecx, eax
push ecx
push eax
mov eax, dword [esi + 0x3c]
push edx
call eax
add esp, 0xc
jmp 0x4048cb
mov ecx, dword [ebp + 0x14]
mov edx, edi
sub edx, ecx
push edx
push ecx
mov ecx, dword [esi + 4]
push ecx
call eax
add esp, 0xc
jmp 0x4048cb
cmp dword [esi + 0x50], 0
je 0x4048cb
mov edx, dword [ebp + 0x14]
push edx
mov eax, edi
call fcn.00407be0
add esp, 4
mov eax, dword [ebp + 0xc]
test eax, eax
jne 0x4048e4
mov eax, dword [esp + 0x18]
mov dword [eax], edi
mov eax, 3
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [esi + 0x128], eax
je 0x4048fe
mov ecx, dword [esp + 0x18]
mov dword [ecx], edi
mov eax, 0xd
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [ebp + 0x1c]
mov dword [edx], edi
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, 0x23
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret