Function at 0x4027b0
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 0x4027ea
lea ecx, [esi + 0x120]
lea edx, [esi + 0x124]
mov dword [esp + 0x18], ecx
mov dword [esp + 0x24], edx
jmp 0x4027fb
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.0x402834
jmp dword [eax*4 + 0x403424]
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 0x402897
mov eax, dword [esi + 0x3c]
test eax, eax
je 0x402878
mov edx, dword [esi + 4]
push 1
lea ecx, [esp + 0x34]
push ecx
push edx
call eax
add esp, 0xc
jmp 0x402938
cmp dword [esi + 0x50], 0
je 0x402938
mov eax, dword [ebp + 0x14]
push eax
mov eax, dword [esp + 0x14]
call fcn.00407840
add esp, 4
jmp 0x402938
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.004090f0
add esp, 4
test eax, eax
je 0x40330c
mov edx, dword [esi + 0xc]
cmp edx, dword [esi + 8]
jne 0x4028d4
call fcn.00409270
test al, al
je 0x40330c
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 0x40330c
mov edi, dword [esp + 0x2c]
push 0
push esi
call fcn.00408c90
mov ecx, dword [edi + 0x60]
add esp, 8
cmp byte [edi + 0x81], 0
mov esi, eax
mov dword [edi + 0x5c], ecx
je 0x402984
cmp byte [edi + 0x82], 0
jne 0x402984
test esi, esi
jne 0x402996
mov eax, dword [ebp + 8]
mov ecx, dword [eax + 0x78]
test ecx, ecx
je 0x402969
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 0x403418
sub eax, 1
jne 0x402804
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 0x402935
mov ecx, dword [ebp + 0x14]
mov eax, dword [esp + 0x10]
mov esi, dword [ebp + 8]
push ecx
call fcn.00407840
add esp, 4
jmp 0x402938
test esi, esi
je 0x4032c7
cmp byte [esi + 0x22], 0
je 0x4032d3
cmp byte [esi + 0x20], 0
jne 0x4032df
cmp dword [esi + 0x1c], 0
jne 0x4032eb
cmp dword [esi + 4], 0
je 0x4029e6
mov eax, dword [ebp + 8]
cmp byte [eax + 0x134], 0
jne 0x4029cc
mov ecx, dword [eax + 0x78]
test ecx, ecx
je 0x402969
mov edx, dword [esi]
push 0
jmp 0x40292b
push 0
push esi
mov esi, eax
call fcn.00406a30
add esp, 8
test eax, eax
jne 0x40341d
jmp 0x402938
mov edi, dword [ebp + 8]
cmp dword [edi + 0x70], 0
je 0x402a38
mov byte [esi + 0x20], 1
call fcn.00407ca0
test eax, eax
mov byte [esi + 0x20], 0
je 0x40330c
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 0x4032f7
mov edx, dword [edi + 0x1b0]
mov dword [edi + 0x1ac], edx
mov esi, edi
jmp 0x402938
cmp dword [edi + 0x50], 0
je 0x402935
mov eax, dword [ebp + 0x14]
push eax
mov eax, dword [esp + 0x14]
mov esi, edi
call fcn.00407840
add esp, 4
jmp 0x402938
mov edi, dword [esi + 0x170]
test edi, edi
je 0x402a6d
mov ecx, dword [edi]
mov dword [esi + 0x170], ecx
jmp 0x402a9c
mov edx, dword [esi + 0xc]
push 0x30
call edx
mov edi, eax
add esp, 4
test edi, edi
je 0x40330c
mov eax, dword [esi + 0xc]
push 0x20
call eax
add esp, 4
test eax, eax
mov dword [edi + 0x24], eax
je 0x403303
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 0x402b8f
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 0x40330c
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 0x402b21
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.00403470
add esp, 0x14
test eax, eax
jne 0x40341d
mov eax, dword [esi + 0x34]
test eax, eax
je 0x402bf5
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.00409070
jmp 0x402938
cmp dword [esi + 0x50], 0
je 0x402c0b
mov eax, dword [ebp + 0x14]
push eax
mov eax, dword [esp + 0x14]
call fcn.00407840
add esp, 4
lea ecx, [esi + 0x1a0]
call fcn.00409070
jmp 0x402938
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.004090f0
add esp, 0xc
test eax, eax
je 0x402c7a
mov edx, dword [esi + 0xc]
cmp edx, dword [esi + 8]
jne 0x402c6b
call fcn.00409270
test al, al
mov esi, dword [esp + 0x28]
jne 0x402c6b
xor eax, eax
jmp 0x402c7a
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 0x40330c
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.00403470
add esp, 0x14
test eax, eax
jne 0x40341d
mov eax, dword [edi + 0x34]
test eax, eax
mov edx, dword [edi + 0x1ac]
mov dword [edi + 0x1b0], edx
je 0x402ce1
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 0x402ce5
mov al, byte [esp + 0xf]
cmp dword [edi + 0x38], 0
je 0x402d10
cmp dword [edi + 0x34], 0
je 0x402cfd
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 0x402d30
test al, al
je 0x402d30
cmp dword [edi + 0x50], 0
je 0x402d30
mov edx, dword [ebp + 0x14]
mov eax, dword [esp + 0x10]
push edx
mov esi, edi
call fcn.00407840
mov esi, dword [esp + 0x2c]
add esp, 4
mov ecx, esi
call fcn.00409070
mov esi, dword [esp + 0x20]
test esi, esi
je 0x402d7c
nop
mov ecx, dword [edi + 0x68]
test ecx, ecx
mov eax, esi
mov dword [esp + 0x38], eax
je 0x402d5d
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 0x402d40
cmp dword [edi + 0x138], 0
je 0x403318
mov esi, edi
jmp 0x402938
mov eax, dword [ebp + 0xc]
cmp dword [esi + 0x138], eax
je 0x403270
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 0x403335
cmp eax, 4
mov edi, dword [edi + 4]
mov ecx, dword [esp + 0x28]
mov dword [esp + 0x14], edi
jb 0x402e0c
nop
mov edx, dword [edi]
cmp edx, dword [ecx]
jne 0x402ebb
sub eax, 4
add ecx, 4
add edi, 4
cmp eax, 4
jae 0x402df0
mov dword [esp + 0x14], edi
test eax, eax
jne 0x402ebf
mov edi, dword [esp + 0x20]
xor eax, eax
test eax, eax
jne 0x403335
add dword [esi + 0x138], 0xffffffff
cmp dword [esi + 0x38], eax
je 0x402f47
cmp byte [esi + 0xec], al
mov edx, dword [edi + 0x10]
je 0x402ea6
test edx, edx
je 0x402ea6
mov ecx, dword [edi + 0x1c]
mov eax, dword [edi + 0xc]
lea eax, [eax + ecx*2]
movzx ecx, word [edx]
test cx, cx
je 0x402e63
add edx, 2
mov word [eax], cx
movzx ecx, word [edx]
add eax, 2
test cx, cx
jne 0x402e52
cmp byte [esi + 0xed], 0
mov edx, dword [edi + 0x14]
je 0x402ea1
test edx, edx
je 0x402ea1
mov cx, word [esi + 0x1d8]
mov word [eax], cx
movzx ecx, word [edx]
add eax, 2
test cx, cx
je 0x402ea1
jmp 0x402e90
add edx, 2
mov word [eax], cx
movzx ecx, word [edx]
add eax, 2
test cx, cx
jne 0x402e90
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 0x402f5d
mov dword [esp + 0x14], edi
movzx edx, byte [edi]
movzx edi, byte [ecx]
sub edx, edi
jne 0x402f2e
add dword [esp + 0x14], 1
sub eax, 1
add ecx, 1
test eax, eax
je 0x402e14
mov edx, dword [esp + 0x14]
movzx edx, byte [edx]
movzx edi, byte [ecx]
sub edx, edi
jne 0x402f2e
add dword [esp + 0x14], 1
sub eax, 1
add ecx, 1
test eax, eax
je 0x402e14
mov edx, dword [esp + 0x14]
movzx edx, byte [edx]
movzx edi, byte [ecx]
sub edx, edi
jne 0x402f2e
mov edx, dword [esp + 0x14]
sub eax, 1
add ecx, 1
add edx, 1
test eax, eax
je 0x402e14
movzx edx, byte [edx]
movzx eax, byte [ecx]
sub edx, eax
je 0x402e14
test edx, edx
mov edi, dword [esp + 0x20]
mov eax, 1
jg 0x402e1a
or eax, 0xffffffff
jmp 0x402e1a
cmp dword [esi + 0x50], 0
je 0x402f5d
mov edx, dword [ebp + 0x14]
mov eax, dword [esp + 0x10]
push edx
call fcn.00407840
add esp, 4
cmp dword [edi + 0x2c], 0
je 0x402fa9
mov eax, dword [esp + 0x20]
mov ecx, dword [esi + 0x68]
test ecx, ecx
mov edi, dword [eax + 0x2c]
je 0x402f83
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 0x402f67
cmp dword [esi + 0x138], 0
jne 0x402938
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.00406830
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 0x40334b
mov edi, dword [esi + 0x3c]
test edi, edi
je 0x402878
lea ecx, [esp + 0x3c]
call fcn.00415620
mov edx, dword [esi + 4]
push eax
push ecx
push edx
call edi
add esp, 0xc
jmp 0x402938
mov eax, dword [esi + 0x3c]
test eax, eax
je 0x403030
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 0x402938
cmp dword [esi + 0x50], 0
je 0x402938
mov eax, dword [ebp + 0x14]
push eax
mov eax, ecx
call fcn.00407840
add esp, 4
jmp 0x402938
mov eax, dword [esi + 0x48]
test eax, eax
je 0x40305c
mov ecx, dword [esi + 4]
push ecx
call eax
jmp 0x40306d
cmp dword [esi + 0x50], 0
je 0x403070
mov edx, dword [ebp + 0x14]
push edx
mov eax, ecx
call fcn.00407840
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.004040c0
add esp, 0x10
test eax, eax
jne 0x40341d
cmp dword [esp + 0x10], eax
jne 0x402938
mov dword [esi + 0x118], 0x404000
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov edi, dword [esi + 0x3c]
test edi, edi
je case.default.0x402834
cmp byte [ebx + 0x49], 0
je 0x4030d9
mov eax, dword [ebp + 0x14]
test al, 1
jne 0x4030d9
sub ecx, eax
sar ecx, 1
push ecx
push eax
mov eax, dword [esi + 4]
push eax
call edi
add esp, 0xc
jmp 0x402938
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 0x402938
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 0x403125
jmp 0x402938
cmp dword [esi + 0x50], 0
je 0x402938
mov edx, dword [ebp + 0x14]
push edx
mov eax, ecx
call fcn.00407840
add esp, 4
jmp 0x402938
mov eax, dword [ebp + 0x14]
push ecx
push eax
push esi
mov ecx, ebx
call fcn.00407680
add esp, 0xc
test eax, eax
je 0x40330c
jmp 0x402938
mov edx, dword [ebp + 0x14]
mov eax, ecx
push esi
mov ecx, ebx
call fcn.004077a0
add esp, 4
test eax, eax
je 0x40330c
jmp 0x402938
cmp byte [ebp + 0x20], 0
je 0x4031e6
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 0x40320d
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 0x403221
cmp dword [esi + 0x50], 0
je 0x403221
mov eax, dword [ebp + 0x14]
push eax
mov eax, edi
call fcn.00407840
add esp, 4
mov eax, dword [ebp + 0xc]
test eax, eax
je 0x4033ee
cmp dword [esi + 0x138], eax
jne 0x403270
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 0x403259
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 0x4033ee
cmp dword [esi + 0x138], eax
je 0x4031d5
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 0x4031d5
mov eax, 5
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
cmp byte [ebp + 0x20], 0
je 0x4032bb
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.00406830
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 0x403248
mov ecx, dword [esi + 0x3c]
test ecx, ecx
je 0x4033cd
cmp byte [ebx + 0x49], 0
je 0x403394
mov eax, dword [ebp + 0x14]
test al, 1
jne 0x403394
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 0x4033e1
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 0x4033e1
cmp dword [esi + 0x50], 0
je 0x4033e1
mov ecx, dword [ebp + 0x14]
push ecx
mov eax, edi
call fcn.00407840
add esp, 4
mov eax, dword [ebp + 0xc]
test eax, eax
jne 0x4033fa
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 0x403234
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