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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x94
push ebx
push esi
mov esi, dword [ebp + 8]
mov eax, dword [esi + 8]
xor ecx, ecx
push edi
mov edi, dword [ebp + 0x10]
mov dword [esp + 0xc], eax
mov dword [esp + 0x38], edi
mov dword [esp + 0x24], ecx
mov dword [esp + 0x30], ecx
mov dword [esp + 0x1c], ecx
cmp eax, ecx
jne 0x4383da
xor eax, eax
jmp 0x439012
mov ebx, dword [ebp + 0xc]
mov ecx, 0x94
test ebx, ebx
je 0x43845a
movzx edx, byte [ebx]
cmp edx, ecx
mov dword [esp + 0x18], edx
jg 0x43843d
je 0x4387d0
cmp edx, 0x39
jle 0x4384a9
cmp edx, 0x6e
jg 0x43845d
je 0x438783
cmp edx, 0x47
je 0x43871f
cmp edx, 0x4d
je 0x4386c0
cmp edx, 0x62
jle case.0x438453.152
cmp edx, 0x6c
jle 0x438681
cmp edx, 0x6d
jne case.0x438453.152
mov ebx, dword [ebx + 0xc]
jmp 0x4383e2
lea eax, [edx - 0x95]
cmp eax, 0x1b
ja case.0x438453.152
movzx eax, byte [eax + 0x43905d]
jmp dword [eax*4 + 0x439019]
push 0x75
pop edx
mov eax, edx
sub eax, 0x71
je 0x4387c1
sub eax, 4
je 0x4387b7
sub eax, 0x11
jne case.0x438453.152
cmp edx, 0x86
jne 0x4387ab
mov eax, dword [ebx + 0x14]
mov eax, dword [eax]
mov eax, dword [eax]
cmp eax, 1
je 0x4387ab
push 1
push eax
push 0x4bd6d8
mov edi, esi
call fcn.00414384
add esp, 0xc
jmp 0x438ffa
cmp edx, 0x34
jge 0x438a00
cmp edx, 0x2d
jg 0x438593
je case.0x438453.166
cmp edx, 0x13
je 0x438783
cmp edx, 0x14
je 0x438476
cmp edx, 0x24
je 0x43854b
cmp edx, 0x2a
jle case.0x438453.152
cmp edx, 0x2c
jle 0x438681
mov eax, dword [esi]
mov edi, dword [ebx + 0x14]
and dword [esp + 0x1c], 0
and dword [esp + 0x28], 0
mov dword [esp + 0x2c], eax
mov eax, dword [edi]
dec dword [esi + 0x38]
mov ebx, dword [ebx + 0xc]
mov dword [esp + 0x20], eax
mov eax, dword [esi + 0x38]
mov dword [esp + 0x34], eax
mov dword [esp + 0x18], ebx
test ebx, ebx
je 0x438f38
push 0
push ebx
push dword [esp + 0x34]
call fcn.00436612
mov ebx, eax
mov eax, dword [esp + 0x38]
add esp, 0xc
cmp byte [eax + 0x51], 0
mov dword [esp + 0x28], ebx
je 0x438ee8
test ebx, ebx
je 0x438ffa
push ebx
push eax
call fcn.0043617f
jmp 0x438b42
push edi
push dword [ebx + 0xc]
push esi
call fcn.004383a1
mov esi, eax
add esp, 0xc
cmp esi, edi
je 0x438570
push edi
push esi
push 0x4f
push dword [esp + 0x18]
call fcn.00427dde
add esp, 0x10
mov esi, edi
mov edx, dword [ebx + 8]
push 0
call fcn.0043e818
pop ecx
movsx eax, al
push eax
push edi
push 0x55
push dword [esp + 0x18]
call fcn.00427dde
add esp, 0x10
jmp 0x43887f
cmp edx, 0x30
je 0x43866f
cmp edx, 0x31
je 0x438607
jle case.0x438453.152
cmp edx, 0x33
jg case.0x438453.152
push edi
push 1
push 0x46
push dword [esp + 0x18]
call fcn.00427dde
push dword [ebx + 0xc]
lea edi, [esp + 0x38]
mov eax, esi
call fcn.0043911f
mov edi, dword [esp + 0x20]
add esp, 0x14
push eax
push dword [esp + 0x1c]
push edi
call fcn.00427dc5
add esp, 0xc
push dword [ebp + 0x10]
mov ebx, eax
push 0
push 0x46
push edi
call fcn.00427dde
add esp, 0x10
mov eax, ebx
mov ecx, edi
call fcn.0042848e
mov ecx, dword [edi + 0x6c]
mov dword [eax + 8], ecx
jmp 0x438ffa
push dword [ebp + 0x10]
mov edi, dword [esi + 0x38]
push 0
dec edi
lea eax, [edi - 1]
push 0x49
push dword [esp + 0x18]
mov dword [esp + 0x40], eax
mov dword [esi + 0x38], eax
call fcn.00427dde
push dword [esp + 0x40]
mov eax, esi
push edi
push ebx
call fcn.00437c9e
mov esi, dword [esp + 0x28]
add esp, 0x1c
push dword [ebp + 0x10]
push 1
push 0x46
push esi
call fcn.00427dde
mov eax, edi
mov ecx, esi
call fcn.00428041
push 0
push dword [ebp + 0x10]
push 0x53
push esi
call fcn.00427dde
mov eax, dword [esp + 0x50]
add esp, 0x20
mov ecx, esi
call fcn.00428041
jmp 0x43898f
push 0
push 0
push edi
push esi
mov eax, ebx
call fcn.004393c0
jmp 0x43894b
push dword [ebx + 0xc]
lea edi, [esp + 0x28]
mov eax, esi
call fcn.0043911f
pop ecx
push dword [ebx + 0x10]
mov dword [esp + 0x14], eax
lea edi, [esp + 0x34]
mov eax, esi
call fcn.0043911f
pop ecx
push dword [ebp + 0x10]
push dword [esp + 0x14]
push eax
push dword [esp + 0x24]
push dword [esp + 0x1c]
call fcn.00427d54
add esp, 0x14
jmp 0x438ffa
mov eax, dword [ebx + 0x28]
movsx ecx, word [ebx + 0x1c]
mov dword [esp + 0x34], eax
movsx eax, word [eax + 0x2a]
inc eax
imul eax, dword [ebx + 0x18]
push edi
lea eax, [eax + ecx + 1]
push eax
push 0x95
push dword [esp + 0x18]
call fcn.00427dde
movzx eax, word [ebx + 0x1c]
add esp, 0x10
test ax, ax
jl 0x438ffa
mov ecx, dword [esp + 0x34]
mov ecx, dword [ecx + 4]
cwde
shl eax, 4
cmp byte [eax + ecx + 0xd], 0x45
jne 0x438ffa
push edi
push 0x54
push dword [esp + 0x14]
call fcn.00427dc5
jmp 0x4384a1
cmp dword [esi + 0x70], 0
jne 0x438737
push 0x4bd7c4
mov edi, esi
call fcn.00414384
pop ecx
jmp 0x4383d3
cmp byte [ebx + 1], 2
jne 0x438744
mov ecx, esi
call fcn.00441d67
mov al, byte [ebx + 1]
cmp al, 4
jne 0x438768
xor eax, eax
push eax
push dword [ebx + 8]
push eax
push 4
push eax
push 0x45
push dword [esp + 0x24]
call fcn.00427ead
add esp, 0x1c
jmp 0x438ffa
push 0
push 0
push dword [ebx + 8]
movsx eax, al
push eax
push 0x713
push esi
call fcn.00441d75
jmp 0x438a6a
push dword [ebx + 0xc]
lea edi, [esp + 0x28]
mov eax, esi
call fcn.0043911f
pop ecx
push dword [ebp + 0x10]
push eax
push dword [esp + 0x20]
push dword [esp + 0x18]
call fcn.00427dde
add esp, 0x10
jmp 0x438ffa
push ebx
push esi
call fcn.00437a3d
jmp 0x438ba0
push edi
push 0
push 0x49
jmp 0x438942
push dword [ebx + 8]
push edi
push dword [esp + 0x14]
call fcn.00427e10
jmp 0x4387df
push edi
push 0
push dword [ebx + 8]
mov esi, dword [esp + 0x18]
call fcn.0043813f
add esp, 0xc
jmp 0x438819
movsx eax, word [ebx + 0x1e]
mov ecx, dword [ebx + 0x24]
imul eax, eax, 0x18
add eax, dword [ecx + 0x1c]
cmp byte [ecx], 0
jne 0x4387fe
mov eax, dword [eax + 0x10]
jmp 0x439012
cmp byte [ecx + 1], 0
je case.0x438453.162
push edi
push dword [eax + 0xc]
push dword [ecx + 8]
push 0x5a
push dword [esp + 0x1c]
call fcn.00427d54
add esp, 0x14
mov eax, edi
jmp 0x439012
test byte [ebx + 4], 8
mov ecx, dword [ebx + 0x18]
je 0x438886
push edi
push dword [ebx + 0xc]
push esi
call fcn.004383a1
mov ecx, dword [ebx + 0x28]
mov esi, eax
movsx eax, word [ebx + 0x1c]
add esp, 0xc
call fcn.004356bc
movsx ebx, al
cmp ebx, 0x41
jle 0x43887f
cmp esi, edi
je 0x438862
push edi
push esi
push 0x4f
push dword [esp + 0x18]
call fcn.00427dde
add esp, 0x10
mov esi, edi
push 0xffffffffffffffff
lea eax, [ebx*2 + 0x4a2110]
push eax
push 0
push 1
push esi
push 0x5b
push dword [esp + 0x24]
call fcn.00427ead
add esp, 0x1c
mov eax, esi
jmp 0x439012
test ecx, ecx
jge 0x4388df
mov esi, dword [esi + 0x34]
test esi, esi
jge 0x4388dc
movzx ecx, word [ebx + 0x1c]
test cx, cx
jl 0x4388d2
mov edx, dword [ebx + 0x28]
mov edx, dword [edx + 4]
movsx eax, cx
mov ebx, eax
shl ebx, 4
cmp byte [edx + ebx + 0xd], 0x45
jne 0x4388d2
push edi
sub eax, esi
push eax
push 0x4f
push dword [esp + 0x18]
call fcn.00427dde
push edi
push 0x54
push dword [esp + 0x24]
call fcn.00427dc5
add esp, 0x1c
jmp 0x438819
movsx eax, cx
sub eax, esi
jmp 0x439012
lea ecx, [esi - 1]
mov al, byte [ebx + 0x22]
push edi
push ecx
push dword [esp + 0x14]
mov ecx, dword [ebx + 0x28]
mov byte [esp + 0x20], al
movsx eax, word [ebx + 0x1c]
call fcn.0043826f
add esp, 0xc
cmp byte [esp + 0x14], 0
je 0x438819
movzx dx, byte [esp + 0x14]
mov ecx, dword [esp + 0xc]
call fcn.00428208
jmp 0x438819
xor ecx, ecx
mov eax, ebx
push edi
push esi
call fcn.0043818c
pop ecx
pop ecx
jmp 0x438819
push edi
mov eax, ebx
call fcn.004357ae
mov eax, dword [eax + 8]
xor ecx, ecx
cmp byte [eax + 4], cl
sete cl
push ecx
push 0x46
push dword [esp + 0x18]
call fcn.00427dde
add esp, 0x10
jmp 0x438819
mov ebx, dword [ebx + 8]
inc ebx
inc ebx
mov eax, ebx
call fcn.0041426d
mov esi, eax
mov eax, dword [esp + 0xc]
mov ecx, dword [eax]
dec esi
push esi
mov edi, ebx
call fcn.00414fd8
pop ecx
push 0xfffffffffffffff9
push eax
mov eax, esi
cdq
push 0
push dword [ebp + 0x10]
sub eax, edx
sar eax, 1
push eax
push 0x4b
push dword [esp + 0x24]
call fcn.00427ead
add esp, 0x1c
mov eax, dword [ebp + 0x10]
jmp 0x439012
movsx eax, word [ebx + 0x1c]
push edi
push eax
push 0x4c
push dword [esp + 0x18]
call fcn.00427dde
mov eax, dword [ebx + 8]
add esp, 0x10
cmp byte [eax + 1], 0
je 0x438819
movsx eax, word [ebx + 0x1c]
mov esi, dword [esi + 0xd0]
push eax
mov edx, esi
call fcn.004153fb
mov edx, dword [esp + 0x10]
and dword [esi], 0
pop ecx
or ecx, 0xffffffff
call fcn.0042844e
jmp 0x438819
mov eax, dword [ebx + 0x18]
jmp 0x439012
xor eax, eax
cmp edx, 0x2d
sete al
mov dword [esp + 0x1c], 0x80
add eax, 0x34
mov edx, eax
mov dword [esp + 0x18], edx
mov ecx, dword [ebx + 0xc]
mov dword [esp + 0x28], ecx
call fcn.00435a65
cmp eax, 1
jle 0x438a25
push dword [esp + 0x1c]
mov eax, ebx
push edx
push edi
mov ecx, esi
call fcn.00435b5d
jmp 0x4384a1
push dword [esp + 0x28]
lea edi, [esp + 0x28]
mov eax, esi
call fcn.0043911f
pop ecx
push dword [ebx + 0x10]
mov dword [esp + 0x14], eax
lea edi, [esp + 0x34]
mov eax, esi
call fcn.0043911f
pop ecx
mov ecx, dword [esp + 0x1c]
or ecx, 0x20
push ecx
push dword [ebp + 0x10]
mov ecx, esi
push eax
push dword [esp + 0x1c]
mov eax, dword [ebx + 0x10]
push dword [esp + 0x28]
push dword [esp + 0x3c]
call fcn.00435a01
add esp, 0x18
jmp 0x438ffa
mov eax, dword [ebx + 0xc]
mov dl, byte [eax]
cmp dl, 0x96
jne 0x438a84
xor ecx, ecx
inc ecx
jmp 0x43891e
cmp dl, cl
jne 0x438a93
push edi
push 1
push dword [eax + 8]
jmp 0x4387d6
and dword [esp + 0x78], 0
lea eax, [esp + 0x70]
push eax
lea edi, [esp + 0x28]
mov eax, esi
mov byte [esp + 0x74], 0x96
mov dword [esp + 0x78], 0x4400
call fcn.0043911f
pop ecx
push dword [ebx + 0xc]
mov dword [esp + 0x14], eax
lea edi, [esp + 0x34]
mov eax, esi
call fcn.0043911f
pop ecx
push dword [ebp + 0x10]
push dword [esp + 0x14]
push eax
push 0x68
jmp 0x4386af
push dword [ebx + 0xc]
lea edi, [esp + 0x28]
mov eax, esi
call fcn.0043911f
mov esi, eax
mov eax, dword [ebx + 0x10]
pop ecx
call fcn.004357ae
mov eax, dword [eax + 8]
xor ecx, ecx
cmp byte [eax + 4], cl
sete cl
mov eax, ecx
xor ecx, ecx
cmp byte [ebx + 0x22], 0x2d
sete cl
xor ecx, eax
push ecx
xor ecx, ecx
test eax, eax
sete cl
push ecx
push dword [ebp + 0x10]
push esi
mov esi, dword [esp + 0x1c]
push 0x58
call fcn.00427fb4
mov esi, dword [ebp + 8]
add esp, 0x14
jmp 0x438ffa
mov eax, dword [ebx + 0x24]
test eax, eax
jne 0x438b49
push dword [ebx + 8]
push 0x4bd790
mov edi, esi
call fcn.00414384
pop ecx
pop ecx
jmp 0x438ffa
movsx ecx, word [ebx + 0x1e]
mov eax, dword [eax + 0x28]
shl ecx, 4
mov eax, dword [ecx + eax + 8]
jmp 0x439012
mov eax, dword [esi]
and dword [esp + 0x28], 0
and dword [esp + 0x2c], 0
test dword [ebx + 4], 0x1000000
mov dword [esp + 0x1c], eax
mov al, byte [eax + 0x4e]
mov byte [esp + 0x34], al
je 0x438b87
mov eax, dword [ebx + 0x28]
mov eax, dword [eax + 0x38]
jmp 0x439012
cmp byte [esi + 0x17], 0
je 0x438ba7
push ebx
call fcn.00436f44
pop ecx
test eax, eax
je 0x438ba7
push 0xffffffffffffffff
push ebx
call fcn.00439079
pop ecx
pop ecx
jmp 0x439012
test dword [ebx + 4], 0x4000
je 0x438c4c
xor edi, edi
and dword [esp + 0x20], 0
mov eax, dword [ebx + 8]
push 0
push dword [esp + 0x38]
mov dword [esp + 0x18], eax
push dword [esp + 0x28]
push eax
push dword [esp + 0x2c]
call fcn.0044260b
add esp, 0x14
mov dword [esp + 0x18], eax
test eax, eax
je 0x438e20
cmp dword [eax + 0x14], 0
jne 0x438e20
mov eax, dword [eax + 4]
test eax, 0x200
je 0x438c62
push dword [ebp + 0x10]
dec dword [esi + 0x38]
push dword [edi + 4]
mov ebx, dword [esi + 0x38]
push esi
call fcn.00439190
mov eax, dword [esp + 0x2c]
add esp, 0xc
cmp eax, 1
jle 0x438c45
add edi, 0x1c
dec eax
mov dword [esp + 0x1c], eax
push ebx
push dword [ebp + 0x10]
push 0x33
push dword [esp + 0x18]
call fcn.00427dde
push dword [ebp + 0x10]
push dword [edi]
push esi
call fcn.00439190
add esp, 0x1c
add edi, 0x18
dec dword [esp + 0x1c]
jne 0x438c1f
mov eax, ebx
jmp 0x438ff1
mov edi, dword [ebx + 0x14]
test edi, edi
je 0x438bb6
mov eax, dword [edi]
mov dword [esp + 0x20], eax
jmp 0x438bbb
test eax, 0x400
je 0x438c7d
push dword [ebp + 0x10]
push dword [edi + 4]
push esi
call fcn.004383a1
add esp, 0xc
jmp 0x439012
mov ecx, dword [esp + 0x20]
and dword [esp + 0x24], 0
test ecx, ecx
jle 0x438cea
lea eax, [edi + 4]
mov dword [esp + 0x10], eax
cmp dword [esp + 0x24], 0x20
jge 0x438cb5
mov eax, dword [esp + 0x10]
push dword [eax]
call fcn.00436f33
pop ecx
test eax, eax
je 0x438cb5
mov ecx, dword [esp + 0x24]
xor eax, eax
inc eax
shl eax, cl
or dword [esp + 0x28], eax
mov eax, dword [esp + 0x18]
test byte [eax + 4], 0x20
je 0x438cd7
cmp dword [esp + 0x2c], 0
jne 0x438cd7
mov eax, dword [esp + 0x10]
mov ecx, dword [eax]
push esi
call fcn.004357e6
pop ecx
mov dword [esp + 0x2c], eax
mov ecx, dword [esp + 0x20]
inc dword [esp + 0x24]
add dword [esp + 0x10], 0x18
cmp dword [esp + 0x24], ecx
jl 0x438c91
test edi, edi
je 0x438d51
cmp dword [esp + 0x28], 0
je 0x438d06
mov eax, dword [esi + 0x2c]
lea edx, [eax + 1]
add eax, ecx
mov dword [esp + 0x10], edx
mov dword [esi + 0x2c], eax
jmp 0x438d19
mov esi, dword [esp + 0x20]
mov eax, dword [ebp + 8]
call fcn.0043a55b
mov esi, dword [ebp + 8]
mov dword [esp + 0x10], eax
mov edx, dword [esp + 0x18]
test byte [edx + 4], 0xc0
je 0x438d3b
mov eax, dword [edi + 4]
mov cl, byte [eax]
cmp cl, 0xa2
je 0x438d32
cmp cl, 0xa4
jne 0x438d3b
mov cl, byte [edx + 4]
and cl, 0xc0
mov byte [eax + 0x22], cl
push 3
push 0
push dword [esp + 0x18]
mov eax, edi
mov ecx, esi
call fcn.004392a2
add esp, 0xc
jmp 0x438d56
and dword [esp + 0x10], 0
cmp dword [esp + 0x20], 2
jl 0x438d68
test byte [ebx + 4], 0x80
je 0x438d68
mov eax, dword [edi + 0x1c]
jmp 0x438d72
cmp dword [esp + 0x20], 0
jle 0x438d8a
mov eax, dword [edi + 4]
push dword [esp + 0x20]
push dword [esp + 0x1c]
push dword [esp + 0x24]
call fcn.004564bb
mov dword [esp + 0x24], eax
add esp, 0xc
mov eax, dword [esp + 0x18]
test byte [eax + 4], 0x20
je 0x438dbf
cmp dword [esp + 0x2c], 0
jne 0x438da6
mov eax, dword [esp + 0x1c]
mov eax, dword [eax + 8]
mov dword [esp + 0x2c], eax
push 0xfffffffffffffffe
push dword [esp + 0x30]
xor eax, eax
push eax
push eax
push eax
push 0x52
push dword [esp + 0x24]
call fcn.00427ead
add esp, 0x1c
mov eax, dword [esi + 0x34]
push 0xfffffffffffffff8
push dword [esp + 0x1c]
neg eax
push dword [ebp + 0x10]
sbb eax, eax
push dword [esp + 0x1c]
add eax, 0x3f
push dword [esp + 0x38]
push eax
push dword [esp + 0x24]
call fcn.00427ead
movzx dx, byte [esp + 0x3c]
mov ecx, dword [esp + 0x28]
add esp, 0x1c
call fcn.00428208
cmp dword [esp + 0x20], 0
je 0x43898f
cmp dword [esp + 0x28], 0
jne 0x43898f
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x10]
mov eax, esi
call fcn.0043a58c
jmp 0x43898f
push dword [esp + 0x10]
push 0x4bd7ac
jmp 0x438b3b
mov eax, dword [ebx + 0xc]
cmp dword [eax + 0x18], 0
jne 0x438e46
push eax
push esi
call fcn.00437a3d
pop ecx
pop ecx
mov ecx, dword [ebx + 0xc]
mov dword [ecx + 0x18], eax
mov edx, dword [ebx + 0x18]
test edx, edx
je 0x438e6a
mov ecx, dword [ebx + 0xc]
call fcn.00435a65
cmp edx, eax
je 0x438e6a
push eax
push edx
push 0x4bd62c
mov edi, esi
call fcn.00414384
add esp, 0xc
movsx eax, word [ebx + 0x1c]
mov ecx, dword [ebx + 0xc]
add eax, dword [ecx + 0x18]
jmp 0x439012
push 0x4bd1f4
mov edi, esi
call fcn.00414384
jmp 0x438b43
push dword [ebx + 0x18]
mov al, byte [esi + 0x17]
push 0x15
push dword [esp + 0x14]
mov byte [esp + 0x20], al
call fcn.00427dc5
add esp, 0xc
push edi
mov byte [esi + 0x17], 0
push dword [ebx + 0xc]
mov dword [esp + 0x24], eax
push esi
call fcn.004383a1
mov ecx, dword [esp + 0x18]
mov edi, eax
mov al, byte [esp + 0x20]
mov byte [esi + 0x17], al
mov eax, dword [esp + 0x28]
add esp, 0xc
mov dword [esp + 0x38], edi
call fcn.0042848e
mov edx, dword [ecx + 0x6c]
mov dword [eax + 8], edx
mov eax, dword [esp + 0x1c]
call fcn.0042848e
mov dword [eax + 0xc], edi
jmp 0x438ffa
push ebx
lea eax, [esp + 0x28]
call fcn.00438329
mov esi, eax
pop ecx
mov eax, ebx
call fcn.004357c1
mov cl, byte [eax]
and dword [eax + 4], 0xffffefff
push 0x30
mov byte [eax + 0x22], cl
mov byte [eax], 0xab
mov dword [eax + 0x18], esi
lea eax, [esp + 0x44]
push 0
push eax
call fcn.00497bc6
mov esi, dword [ebp + 8]
lea eax, [esp + 0x4c]
add esp, 0xc
and dword [esp + 0x24], 0
mov byte [esp + 0x40], 0x35
mov dword [esp + 0x4c], ebx
mov dword [esp + 0x1c], eax
mov eax, dword [esp + 0x20]
dec eax
test eax, eax
jle 0x438faa
dec eax
shr eax, 1
inc eax
lea ebx, [edi + 4]
mov dword [esp + 0x10], eax
cmp dword [esp + 0x18], 0
mov eax, dword [ebx]
je 0x438f5b
mov dword [esp + 0x50], eax
jmp 0x438f5f
mov dword [esp + 0x1c], eax
dec dword [esi + 0x38]
mov eax, dword [esi + 0x38]
push 0x10
push eax
push dword [esp + 0x24]
mov dword [esp + 0x48], eax
push esi
call fcn.00439761
push dword [ebp + 0x10]
push dword [ebx + 0x18]
push esi
call fcn.00439190
add esp, 0x1c
push dword [esp + 0x34]
push dword [esp + 0x10]
call fcn.00427df9
mov eax, dword [esp + 0x44]
pop ecx
pop ecx
mov ecx, dword [esp + 0xc]
call fcn.00428041
add ebx, 0x30
dec dword [esp + 0x10]
jne 0x438f4c
mov eax, dword [esp + 0x20]
push dword [ebp + 0x10]
test al, 1
je 0x438fc7
imul eax, eax, 0x18
push dword [eax + edi - 0x14]
push esi
call fcn.00439190
add esp, 0xc
jmp 0x438fd7
push 0
push 0x49
push dword [esp + 0x18]
call fcn.00427dde
add esp, 0x10
cmp dword [esp + 0x28], 0
je 0x438fed
push dword [esp + 0x28]
push dword [esp + 0x30]
call fcn.0043617f
pop ecx
pop ecx
mov eax, dword [esp + 0x34]
mov ecx, dword [esp + 0xc]
call fcn.00428041
mov edx, dword [esp + 0x24]
mov eax, esi
call fcn.0043a541
mov edx, dword [esp + 0x30]
call fcn.0043a541
mov eax, dword [esp + 0x38]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret