Function at 0x401c10
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]
cmp ebx, dword [esi + 0x90]
mov eax, dword [esi + 0x164]
push edi
mov dword [esp + 0x2c], eax
jne 0x401c4a
lea ecx, [esi + 0x120]
lea edx, [esi + 0x124]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x24], edx
jmp 0x401c5b
mov eax, dword [esi + 0x12c]
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 + 0x10]
push edx
push edi
push eax
mov dword [esp + 0x1c], eax
mov eax, dword [ebx + 4]
push ebx
call eax
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x34]
add eax, 5
add esp, 0x10
cmp eax, 0x12
mov dword [edx], ecx
ja case.default.0x401c94
jmp dword [eax*4 + 0x402884]
mov eax, dword [ebx + 0x44]
mov edx, dword [ebx + 0x30]
sub ecx, eax
push ecx
mov ecx, dword [ebp + 0x14]
add eax, ecx
push eax
push ebx
call edx
movzx eax, ax
add esp, 0xc
test ax, ax
mov dword [esp + 0x30], eax
je 0x401cf7
mov eax, dword [esi + 0x3c]
test eax, eax
je 0x401cd8
mov edx, dword [esi + 4]
push 1
lea ecx, [esp + 0x34]
push ecx
push edx
call eax
add esp, 0xc
jmp 0x401d98
cmp dword [esi + 0x50], 0
je 0x401d98
mov eax, dword [ebp + 0x14]
push eax
mov eax, dword [esp + 0x14]
call fcn.00406960
add esp, 4
jmp 0x401d98
mov eax, dword [ebx + 0x44]
mov edi, dword [esp + 0x10]
mov ecx, dword [ebp + 0x14]
mov esi, dword [esp + 0x2c]
sub edi, eax
add eax, ecx
add esi, 0x50
push eax
mov eax, esi
call fcn.00407a50
add esp, 4
test eax, eax
je 0x40276c
mov edx, dword [esi + 0xc]
cmp edx, dword [esi + 8]
jne 0x401d34
call fcn.00407b70
test al, al
je 0x40276c
mov eax, dword [esi + 0xc]
mov word [eax], 0
add dword [esi + 0xc], 2
mov esi, dword [esi + 0x10]
test esi, esi
mov dword [esp + 0x28], esi
je 0x40276c
mov edi, dword [esp + 0x2c]
push 0
push esi
call fcn.004076e0
mov ecx, dword [edi + 0x60]
add esp, 8
cmp byte [edi + 0x81], 0
mov esi, eax
mov dword [edi + 0x5c], ecx
je 0x401de4
cmp byte [edi + 0x82], 0
jne 0x401de4
test esi, esi
jne 0x401df6
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x78]
test ecx, ecx
je 0x401dc9
mov edx, dword [esp + 0x28]
push esi
mov eax, dword [eax + 4]
push edx
push eax
call ecx
add esp, 0xc
mov esi, dword [ebp + 8]
mov ecx, dword [esp + 0x10]
mov eax, dword [esp + 0x18]
mov dword [ebp + 0x14], ecx
mov dword [eax], ecx
mov eax, dword [esi + 0x1e0]
sub eax, 2
je 0x402878
sub eax, 1
jne 0x401c64
mov edx, dword [ebp + 0x1c]
mov dword [edx], ecx
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [eax + 0x50], 0
je 0x401d95
mov ecx, dword [ebp + 0x14]
mov eax, dword [esp + 0x10]
mov esi, dword [ebp + 8]
push ecx
call fcn.00406960
add esp, 4
jmp 0x401d98
test esi, esi
je 0x402727
cmp byte [esi + 0x22], 0
je 0x402733
cmp byte [esi + 0x20], 0
jne 0x40273f
cmp dword [esi + 0x1c], 0
jne 0x40274b
cmp dword [esi + 4], 0
je 0x401e46
mov eax, dword [ebp + 8]
cmp byte [eax + 0x134], 0
jne 0x401e2c
mov ecx, dword [eax + 0x78]
test ecx, ecx
je 0x401dc9
mov edx, dword [esi]
push 0
jmp 0x401d8b
push 0
push esi
mov esi, eax
call fcn.00405b60
add esp, 8
test eax, eax
jne 0x40287d
jmp 0x401d98
mov edi, dword [ebp + 8]
cmp dword [edi + 0x70], 0
je 0x401e98
mov byte [esi + 0x20], 1
call fcn.00406dc0
test eax, eax
mov byte [esi + 0x20], 0
je 0x40276c
mov edx, dword [esi + 0x18]
mov ecx, dword [esi + 0x10]
push edx
mov edx, dword [esi + 0x14]
push ecx
mov ecx, dword [edi + 0x70]
push edx
push eax
mov eax, dword [edi + 0x74]
push eax
call ecx
add esp, 0x14
test eax, eax
je 0x402757
mov edx, dword [edi + 0x1b0]
mov dword [edi + 0x1ac], edx
mov esi, edi
jmp 0x401d98
cmp dword [edi + 0x50], 0
je 0x401d95
mov eax, dword [ebp + 0x14]
push eax
mov eax, dword [esp + 0x14]
mov esi, edi
call fcn.00406960
add esp, 4
jmp 0x401d98
mov edi, dword [esi + 0x170]
test edi, edi
je 0x401ecd
mov ecx, dword [edi]
mov dword [esi + 0x170], ecx
jmp 0x401efc
mov edx, dword [esi + 0xc]
push 0x30
call edx
mov edi, eax
add esp, 4
test edi, edi
je 0x40276c
mov eax, dword [esi + 0xc]
push 0x20
call eax
add esp, 4
test eax, eax
mov dword [edi + 0x24], eax
je 0x402763
add eax, 0x20
mov dword [edi + 0x28], eax
xor ecx, ecx
mov dword [edi + 0x2c], ecx
mov edx, dword [esi + 0x16c]
lea eax, [edi + 0x2c]
mov dword [edi], edx
mov dword [esi + 0x16c], edi
mov dword [edi + 0x10], ecx
mov dword [edi + 0x14], ecx
mov ecx, dword [ebp + 0x14]
mov dword [esp + 0x38], eax
mov eax, dword [ebx + 0x44]
add eax, ecx
push eax
mov dword [edi + 4], eax
mov edx, dword [ebx + 0x20]
push ebx
call edx
mov dword [edi + 8], eax
add dword [esi + 0x138], 1
mov eax, dword [edi + 4]
mov ecx, dword [edi + 8]
add ecx, eax
mov dword [esp + 0x28], eax
mov eax, dword [edi + 0x24]
mov dword [esp + 0x24], eax
mov edx, dword [edi + 0x28]
sub edx, 2
push edx
mov edx, dword [ebx + 0x40]
lea eax, [esp + 0x28]
push eax
push ecx
mov dword [esp + 0x28], ecx
lea ecx, [esp + 0x34]
push ecx
push ebx
call edx
mov eax, dword [esp + 0x38]
sub eax, dword [edi + 0x24]
add esp, 0x1c
sar eax, 1
mov dword [esp + 0x28], eax
mov eax, dword [esp + 0x14]
cmp dword [esp + 0x20], eax
je 0x401fef
mov ecx, dword [edi + 0x24]
mov eax, dword [edi + 0x28]
sub eax, ecx
add eax, eax
push eax
push ecx
mov ecx, dword [esi + 0x10]
mov dword [esp + 0x3c], eax
call ecx
add esp, 8
test eax, eax
je 0x40276c
mov edx, dword [esp + 0x34]
lea ecx, [eax + edx]
mov edx, dword [esp + 0x28]
mov dword [edi + 0x24], eax
mov dword [edi + 0x28], ecx
lea eax, [eax + edx*2]
mov dword [esp + 0x1c], eax
mov ecx, dword [edi + 0x28]
mov eax, dword [esp + 0x14]
sub ecx, 2
push ecx
lea edx, [esp + 0x20]
push edx
mov edx, dword [ebx + 0x40]
push eax
lea ecx, [esp + 0x2c]
push ecx
push ebx
call edx
mov eax, dword [esp + 0x30]
sub eax, dword [edi + 0x24]
mov ecx, dword [esp + 0x28]
sar eax, 1
add esp, 0x14
cmp dword [esp + 0x20], ecx
mov dword [esp + 0x28], eax
jne 0x401f81
mov ecx, dword [edi + 0x24]
mov edx, dword [esp + 0x28]
lea eax, [edi + 0xc]
mov dword [eax], ecx
mov ecx, dword [esp + 0x38]
mov dword [edi + 0x18], edx
mov edx, dword [esp + 0x1c]
push ecx
push eax
mov word [edx], 0
mov edx, dword [ebp + 0x14]
push edx
push ebx
push esi
mov dword [esp + 0x48], eax
call fcn.004028d0
add esp, 0x14
test eax, eax
jne 0x40287d
mov eax, dword [esi + 0x34]
test eax, eax
je 0x402055
mov ecx, dword [esi + 0x188]
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 + 0x1a0]
call fcn.004079d0
jmp 0x401d98
cmp dword [esi + 0x50], 0
je 0x40206b
mov eax, dword [ebp + 0x14]
push eax
mov eax, dword [esp + 0x14]
call fcn.00406960
add esp, 4
lea ecx, [esi + 0x1a0]
call fcn.004079d0
jmp 0x401d98
mov edi, dword [ebx + 0x44]
add edi, dword [ebp + 0x14]
mov ecx, dword [ebx + 0x20]
push edi
push ebx
mov dword [esp + 0x28], 0
mov byte [esp + 0x17], 1
call ecx
add eax, edi
add esi, 0x1a0
push edi
mov edi, eax
mov eax, esi
mov dword [esp + 0x34], esi
call fcn.00407a50
add esp, 0xc
test eax, eax
je 0x4020da
mov edx, dword [esi + 0xc]
cmp edx, dword [esi + 8]
jne 0x4020cb
call fcn.00407b70
test al, al
mov esi, dword [esp + 0x28]
jne 0x4020cb
xor eax, eax
jmp 0x4020da
mov eax, dword [esi + 0xc]
mov word [eax], 0
add dword [esi + 0xc], 2
mov eax, dword [esi + 0x10]
test eax, eax
mov dword [esp + 0x40], eax
je 0x40276c
mov edi, dword [ebp + 8]
mov ecx, dword [edi + 0x1ac]
lea edx, [esp + 0x20]
push edx
lea eax, [esp + 0x44]
push eax
mov dword [edi + 0x1b0], ecx
mov ecx, dword [ebp + 0x14]
push ecx
push ebx
push edi
call fcn.004028d0
add esp, 0x14
test eax, eax
jne 0x40287d
mov eax, dword [edi + 0x34]
test eax, eax
mov edx, dword [edi + 0x1ac]
mov dword [edi + 0x1b0], edx
je 0x402141
mov ecx, dword [edi + 0x188]
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 0x402145
mov al, byte [esp + 0xf]
cmp dword [edi + 0x38], 0
je 0x402170
cmp dword [edi + 0x34], 0
je 0x40215d
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 0x402190
test al, al
je 0x402190
cmp dword [edi + 0x50], 0
je 0x402190
mov edx, dword [ebp + 0x14]
mov eax, dword [esp + 0x10]
push edx
mov esi, edi
call fcn.00406960
mov esi, dword [esp + 0x2c]
add esp, 4
mov ecx, esi
call fcn.004079d0
mov esi, dword [esp + 0x20]
test esi, esi
je 0x4021dc
nop
mov ecx, dword [edi + 0x68]
test ecx, ecx
mov eax, esi
mov dword [esp + 0x38], eax
je 0x4021bd
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 + 0x178]
lea ecx, [esi + 4]
mov esi, dword [ecx]
test esi, esi
mov dword [ecx], edx
mov dword [edi + 0x178], eax
mov ecx, dword [eax]
mov edx, dword [eax + 8]
mov dword [ecx + 4], edx
jne 0x4021a0
cmp dword [edi + 0x138], 0
je 0x402778
mov esi, edi
jmp 0x401d98
mov eax, dword [ebp + 0xc]
cmp dword [esi + 0x138], eax
je 0x4026d0
mov edi, dword [esi + 0x16c]
mov ecx, dword [edi]
mov edx, dword [esi + 0x170]
mov dword [esi + 0x16c], ecx
mov dword [edi], edx
mov ecx, dword [ebp + 0x14]
mov dword [esi + 0x170], edi
mov eax, dword [ebx + 0x44]
mov edx, dword [ebx + 0x20]
lea eax, [ecx + eax*2]
push eax
push ebx
mov dword [esp + 0x28], edi
mov dword [esp + 0x30], eax
call edx
add esp, 8
cmp eax, dword [edi + 8]
jne 0x402795
cmp eax, 4
mov edi, dword [edi + 4]
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x14], edi
jb 0x40226c
nop
mov edx, dword [edi]
cmp edx, dword [ecx]
jne 0x40231b
sub eax, 4
add ecx, 4
add edi, 4
cmp eax, 4
jae 0x402250
mov dword [esp + 0x14], edi
test eax, eax
jne 0x40231f
mov edi, dword [esp + 0x20]
xor eax, eax
test eax, eax
jne 0x402795
add dword [esi + 0x138], 0xffffffff
cmp dword [esi + 0x38], eax
je 0x4023a7
cmp byte [esi + 0xec], al
mov edx, dword [edi + 0x10]
je 0x402306
test edx, edx
je 0x402306
mov ecx, dword [edi + 0x1c]
mov eax, dword [edi + 0xc]
lea eax, [eax + ecx*2]
movzx ecx, word [edx]
test cx, cx
je 0x4022c3
add edx, 2
mov word [eax], cx
movzx ecx, word [edx]
add eax, 2
test cx, cx
jne 0x4022b2
cmp byte [esi + 0xed], 0
mov edx, dword [edi + 0x14]
je 0x402301
test edx, edx
je 0x402301
mov cx, word [esi + 0x1d8]
mov word [eax], cx
movzx ecx, word [edx]
add eax, 2
test cx, cx
je 0x402301
jmp 0x4022f0
add edx, 2
mov word [eax], cx
movzx ecx, word [edx]
add eax, 2
test cx, cx
jne 0x4022f0
mov word [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 0x4023bd
mov dword [esp + 0x14], edi
movzx edx, byte [edi]
movzx edi, byte [ecx]
sub edx, edi
jne 0x40238e
add dword [esp + 0x14], 1
sub eax, 1
add ecx, 1
test eax, eax
je 0x402274
mov edx, dword [esp + 0x14]
movzx edx, byte [edx]
movzx edi, byte [ecx]
sub edx, edi
jne 0x40238e
add dword [esp + 0x14], 1
sub eax, 1
add ecx, 1
test eax, eax
je 0x402274
mov edx, dword [esp + 0x14]
movzx edx, byte [edx]
movzx edi, byte [ecx]
sub edx, edi
jne 0x40238e
mov edx, dword [esp + 0x14]
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x402274
movzx edx, byte [edx]
movzx eax, byte [ecx]
sub edx, eax
je 0x402274
test edx, edx
mov edi, dword [esp + 0x20]
mov eax, 1
jg 0x40227a
or eax, 0xffffffff
jmp 0x40227a
cmp dword [esi + 0x50], 0
je 0x4023bd
mov edx, dword [ebp + 0x14]
mov eax, dword [esp + 0x10]
push edx
call fcn.00406960
add esp, 4
cmp dword [edi + 0x2c], 0
je 0x402409
mov eax, dword [esp + 0x20]
mov ecx, dword [esi + 0x68]
test ecx, ecx
mov edi, dword [eax + 0x2c]
je 0x4023e3
mov eax, dword [edi]
mov edx, dword [eax]
mov eax, dword [esi + 4]
push edx
push eax
call ecx
mov eax, dword [esp + 0x28]
add esp, 8
mov ecx, dword [eax + 0x2c]
mov edx, dword [ecx + 4]
mov dword [eax + 0x2c], edx
mov ecx, dword [esi + 0x178]
mov dword [edi + 4], ecx
mov dword [esi + 0x178], edi
mov edx, dword [edi]
mov ecx, dword [edi + 8]
mov dword [edx + 4], ecx
cmp dword [eax + 0x2c], 0
jne 0x4023c7
cmp dword [esi + 0x138], 0
jne 0x401d98
mov eax, dword [ebp + 0x1c]
mov ecx, dword [ebp + 0x18]
mov edx, dword [esp + 0x10]
push eax
push ecx
push edx
push esi
call fcn.00405960
add esp, 0x10
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edx, dword [ebp + 0x14]
mov eax, dword [ebx + 0x2c]
push edx
push ebx
call eax
add esp, 8
test eax, eax
jl 0x4027ab
mov edi, dword [esi + 0x3c]
test edi, edi
je 0x401cd8
lea ecx, [esp + 0x3c]
call fcn.00413f10
mov edx, dword [esi + 4]
push eax
push ecx
push edx
call edi
add esp, 0xc
jmp 0x401d98
mov eax, dword [esi + 0x3c]
test eax, eax
je 0x402490
mov edx, dword [esi + 4]
push 1
lea ecx, [esp + 0x3c]
push ecx
push edx
mov dword [esp + 0x44], 0xa
call eax
add esp, 0xc
jmp 0x401d98
cmp dword [esi + 0x50], 0
je 0x401d98
mov eax, dword [ebp + 0x14]
push eax
mov eax, ecx
call fcn.00406960
add esp, 4
jmp 0x401d98
mov eax, dword [esi + 0x48]
test eax, eax
je 0x4024bc
mov ecx, dword [esi + 4]
push ecx
call eax
jmp 0x4024cd
cmp dword [esi + 0x50], 0
je 0x4024d0
mov edx, dword [ebp + 0x14]
push edx
mov eax, ecx
call fcn.00406960
add esp, 4
mov eax, dword [ebp + 0x20]
mov ecx, dword [ebp + 0x1c]
push eax
push ecx
lea edx, [esp + 0x18]
push edi
push edx
mov eax, ebx
mov ecx, esi
call fcn.00403520
add esp, 0x10
test eax, eax
jne 0x40287d
cmp dword [esp + 0x10], eax
jne 0x401d98
mov dword [esi + 0x118], 0x403460
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edi, dword [esi + 0x3c]
test edi, edi
je case.default.0x401c94
cmp byte [ebx + 0x49], 0
je 0x402539
mov eax, dword [ebp + 0x14]
test al, 1
jne 0x402539
sub ecx, eax
sar ecx, 1
push ecx
push eax
mov eax, dword [esi + 4]
push eax
call edi
add esp, 0xc
jmp 0x401d98
mov edx, dword [esi + 0x2c]
mov eax, dword [esi + 0x30]
push eax
mov dword [esp + 0x24], edx
lea edx, [esp + 0x24]
push edx
push ecx
mov ecx, dword [ebx + 0x40]
lea eax, [ebp + 0x14]
push eax
push ebx
call ecx
mov edx, dword [ebp + 0x14]
mov eax, dword [esp + 0x38]
mov ecx, dword [esp + 0x34]
mov dword [eax], edx
mov eax, dword [esi + 0x2c]
mov edx, dword [esi + 4]
sub ecx, eax
add esp, 0x14
sar ecx, 1
push ecx
push eax
push edx
call edi
mov eax, dword [ebp + 0x14]
mov ecx, dword [esp + 0x1c]
add esp, 0xc
cmp eax, ecx
je 0x401d98
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 + 0x40]
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 + 0x38]
mov edx, dword [esp + 0x34]
mov dword [ecx], eax
mov eax, dword [esi + 0x2c]
sub edx, eax
add esp, 0x14
sar edx, 1
push edx
push eax
mov eax, dword [esi + 4]
push eax
call edi
mov eax, dword [ebp + 0x14]
mov ecx, dword [esp + 0x1c]
add esp, 0xc
cmp eax, ecx
jne 0x402585
jmp 0x401d98
cmp dword [esi + 0x50], 0
je 0x401d98
mov edx, dword [ebp + 0x14]
push edx
mov eax, ecx
call fcn.00406960
add esp, 4
jmp 0x401d98
mov eax, dword [ebp + 0x14]
push ecx
push eax
push esi
mov ecx, ebx
call fcn.004067a0
add esp, 0xc
test eax, eax
je 0x40276c
jmp 0x401d98
mov edx, dword [ebp + 0x14]
mov eax, ecx
push esi
mov ecx, ebx
call fcn.004068c0
add esp, 4
test eax, eax
je 0x40276c
jmp 0x401d98
cmp byte [ebp + 0x20], 0
je 0x402646
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 0x40266d
mov edx, dword [esi + 4]
push 1
lea ecx, [esp + 0x40]
push ecx
push edx
mov dword [esp + 0x48], 0xa
call eax
add esp, 0xc
jmp 0x402681
cmp dword [esi + 0x50], 0
je 0x402681
mov eax, dword [ebp + 0x14]
push eax
mov eax, edi
call fcn.00406960
add esp, 4
mov eax, dword [ebp + 0xc]
test eax, eax
je 0x40284e
cmp dword [esi + 0x138], eax
jne 0x4026d0
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 0x4026b9
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 0x40284e
cmp dword [esi + 0x138], eax
je 0x402635
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 0x402635
mov eax, 5
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp byte [ebp + 0x20], 0
je 0x40271b
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 + 0x10]
push eax
push ecx
push edx
push edi
call fcn.00405960
add esp, 0x10
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [esp + 0x28]
mov ecx, dword [esp + 0x18]
mov dword [ecx], eax
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 0x4026a8
mov ecx, dword [esi + 0x3c]
test ecx, ecx
je 0x40282d
cmp byte [ebx + 0x49], 0
je 0x4027f4
mov eax, dword [ebp + 0x14]
test al, 1
jne 0x4027f4
mov edx, edi
sub edx, eax
sar edx, 1
push edx
push eax
mov eax, dword [esi + 4]
push eax
call ecx
add esp, 0xc
jmp 0x402841
mov edx, dword [esi + 0x30]
mov ecx, dword [esi + 0x2c]
push edx
mov edx, dword [ebx + 0x40]
lea eax, [esp + 0x30]
push eax
mov dword [esp + 0x34], ecx
push edi
lea ecx, [ebp + 0x14]
push ecx
push ebx
call edx
mov eax, dword [esi + 0x2c]
mov ecx, dword [esp + 0x40]
mov edx, dword [esi + 4]
sub ecx, eax
add esp, 0x14
sar ecx, 1
push ecx
push eax
mov eax, dword [esi + 0x3c]
push edx
call eax
add esp, 0xc
jmp 0x402841
cmp dword [esi + 0x50], 0
je 0x402841
mov ecx, dword [ebp + 0x14]
push ecx
mov eax, edi
call fcn.00406960
add esp, 4
mov eax, dword [ebp + 0xc]
test eax, eax
jne 0x40285a
mov edx, dword [esp + 0x18]
mov dword [edx], edi
mov eax, 3
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp dword [esi + 0x138], eax
je 0x402694
mov eax, dword [esp + 0x18]
mov dword [eax], edi
mov eax, 0xd
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