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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x9c
mov eax, dword [0x5f4748]
xor eax, esp
mov dword [esp + 0x98], eax
and dword [esp + 0x24], 0
and dword [esp + 0x2c], 0
push ebx
mov ebx, ecx
push esi
push edi
mov edi, edx
mov dword [esp + 0x20], ebx
mov ecx, dword [ebx + 8]
mov edx, dword [ebp + 8]
mov eax, dword [ebx]
mov dword [esp + 0x28], edi
mov dword [esp + 0x10], ecx
mov dword [esp + 0xc], edx
mov dword [esp + 0x1c], eax
test ecx, ecx
jne 0x477dd0
xor eax, eax
jmp 0x478986
test edi, edi
jne 0x477de0
push 0x65
pop esi
mov dword [esp + 0x14], esi
jmp 0x47825e
movzx esi, byte [edi]
mov dword [esp + 0x14], esi
cmp esi, 0x61
jg 0x47824c
je 0x478233
cmp esi, 0x49
jg 0x477fe0
je 0x478293
cmp esi, 0x26
jg 0x477ea7
je 0x477e3c
mov eax, esi
sub eax, 0x13
je 0x478209
dec eax
je 0x47836a
sub eax, 4
jne 0x4786ea
push edx
mov edx, dword [edi + 0xc]
mov ecx, ebx
call fcn.00477d7e
pop ecx
jmp 0x4788f5
push edx
mov edx, dword [edi + 0xc]
mov ecx, ebx
call fcn.00477d7e
pop ecx
mov ecx, dword [edi + 8]
xor edx, edx
mov dword [esp + 0xc], eax
call fcn.0047cdf8
mov edi, dword [esp + 0x10]
movsx esi, al
mov eax, dword [esp + 0xc]
cmp eax, dword [ebp + 8]
je 0x477e80
push 0
push dword [ebp + 8]
mov ecx, edi
push eax
push 0x22
pop edx
call fcn.004698fa
mov eax, dword [ebp + 8]
add esp, 0xc
mov dword [esp + 0xc], eax
push 0
push 0
push eax
lea edx, [esi + 0x2e]
mov ecx, edi
call fcn.004698fa
mov edi, dword [esp + 0x18]
add esp, 0xc
mov edx, edi
mov ecx, ebx
push 1
call fcn.00477b67
pop ecx
jmp 0x478970
cmp esi, 0x39
je 0x477f62
cmp esi, 0x3e
je 0x477ef8
cmp esi, 0x46
jle 0x4786ea
cmp esi, 0x48
jg 0x4786ea
mov edx, dword [edi + 0xc]
lea eax, [esp + 0x30]
push eax
mov ecx, ebx
call fcn.004789f3
mov edx, dword [edi + 0x10]
mov esi, eax
pop ecx
lea eax, [esp + 0x38]
mov ecx, ebx
push eax
call fcn.004789f3
mov edx, dword [esp + 0x18]
pop ecx
push dword [ebp + 8]
mov ecx, dword [esp + 0x14]
push esi
push eax
jmp 0x477f55
mov eax, dword [edi + 0x2c]
mov esi, dword [esp + 0x10]
mov dword [esp + 0x28], eax
push 0
movsx ecx, word [eax + 0x26]
movsx eax, word [edi + 0x20]
inc ecx
imul ecx, dword [edi + 0x1c]
inc eax
push edx
mov edx, 0x82
add eax, ecx
mov ecx, esi
push eax
call fcn.004698fa
movzx eax, word [edi + 0x20]
add esp, 0xc
test ax, ax
js 0x47896c
cwde
imul ecx, eax, 0x18
mov eax, dword [esp + 0x28]
mov eax, dword [eax + 4]
cmp byte [ecx + eax + 0x15], 0x65
jne 0x47896c
push 0
push 0
push dword [ebp + 8]
mov ecx, esi
push 0x27
pop edx
call fcn.004698fa
add esp, 0xc
jmp 0x47896c
xor edx, edx
cmp dword [ebx + 0x19c], edx
jne 0x477f7e
push str.RAISE___may_only_be_used_within_a_trigger_program
push ebx
call fcn.004560c2
pop ecx
pop ecx
jmp 0x477dc9
cmp byte [edi + 1], 2
jne 0x477f99
mov eax, dword [ebx + 0x198]
mov ecx, ebx
test eax, eax
cmovne ecx, eax
mov byte [ecx + 0x15], 1
mov ecx, dword [esp + 0x10]
mov al, byte [edi + 1]
push edx
cmp al, 4
jne 0x477fc7
mov esi, dword [edi + 8]
push 4
push edx
push 0x18
pop edx
call fcn.004698fa
add esp, 0xc
push 0
push esi
mov edx, eax
mov ecx, dword [esp + 0x18]
call fcn.00469ea9
pop ecx
pop ecx
jmp 0x47896c
push edx
push dword [edi + 8]
movsx eax, al
mov edx, 0x713
push eax
mov ecx, ebx
call fcn.0047fd13
jmp 0x478969
cmp esi, 0x53
jg 0x4781e5
cmp esi, 0x4e
jge 0x4781a3
cmp esi, 0x4a
je 0x4780dd
cmp esi, 0x4b
je 0x478065
lea eax, [esi - 0x4c]
cmp eax, 1
ja 0x4786ea
push 0
push edx
push 1
push 0x19
pop edx
call fcn.004698fa
mov edx, dword [edi + 0xc]
lea eax, [esp + 0x3c]
add esp, 0xc
mov ecx, ebx
push eax
call fcn.004789f3
mov edi, dword [esp + 0x14]
mov edx, esi
pop ecx
push 0
push 0
push eax
mov ecx, edi
call fcn.004698fa
add esp, 0xc
mov ecx, edi
mov esi, eax
push 0
push dword [ebp + 8]
push 0
push 0x19
pop edx
call fcn.004698fa
add esp, 0xc
mov edx, esi
mov ecx, edi
call fcn.00469cfb
jmp 0x47896c
call fcn.00469a3a
mov ecx, dword [esp + 0x10]
mov esi, eax
call fcn.00469a3a
mov ecx, dword [esp + 0x10]
mov edi, eax
push 0
push dword [ebp + 8]
push 0
push 0x1c
pop edx
call fcn.004698fa
mov edx, dword [esp + 0x34]
add esp, 0xc
mov ecx, ebx
push edi
push esi
call fcn.00477620
mov ecx, dword [esp + 0x18]
push 0
push dword [ebp + 8]
push 1
push 0x19
pop edx
call fcn.004698fa
add esp, 0x14
mov edx, esi
mov esi, dword [esp + 0x10]
mov ecx, esi
call fcn.00469a77
push 0
push 0
push dword [ebp + 8]
push 0x25
pop edx
call fcn.004698fa
add esp, 0xc
mov edx, edi
mov ecx, esi
call fcn.00469a77
jmp 0x47896c
mov eax, dword [edi + 0x14]
mov ecx, dword [edi + 0xc]
mov edx, ecx
mov dword [esp + 0x1c], ecx
mov ecx, ebx
mov edi, dword [eax + 4]
lea eax, [esp + 0x30]
push eax
mov esi, dword [edi]
call fcn.004789f3
mov ebx, eax
mov edx, esi
pop ecx
mov ecx, dword [esp + 0x20]
lea eax, [esp + 0x38]
push eax
call fcn.004789f3
pop ecx
mov ecx, dword [esp + 0x20]
mov edx, eax
call fcn.0047982b
mov dword [esp + 0x14], eax
call fcn.0047982b
push 0x10
push dword [esp + 0x18]
mov dword [esp + 0x30], eax
push edx
mov edx, dword [esp + 0x28]
push ebx
push 0x53
push esi
call fcn.00475c3b
mov esi, dword [edi + 0x18]
mov edx, dword [esp + 0x50]
mov ecx, dword [esp + 0x38]
call fcn.00479847
lea eax, [esp + 0x50]
mov edx, esi
push eax
call fcn.004789f3
mov edi, dword [esp + 0x44]
add esp, 0x1c
mov edx, dword [esp + 0x1c]
mov ecx, dword [esp + 0x20]
push 0x10
push edi
push eax
push ebx
push 0x51
push esi
call fcn.00475c3b
push dword [ebp + 8]
mov ebx, dword [esp + 0x30]
mov ecx, dword [esp + 0x2c]
push edi
push ebx
push 0x48
pop edx
call fcn.004698fa
add esp, 0x24
mov edx, ebx
mov ebx, dword [esp + 0x20]
mov ecx, ebx
call fcn.00479847
mov edx, edi
call fcn.00479847
jmp 0x47896c
mov edx, dword [edi + 0xc]
lea eax, [esp + 0x30]
push eax
mov ecx, ebx
call fcn.004789f3
mov edx, dword [edi + 0x10]
mov esi, eax
pop ecx
lea eax, [esp + 0x38]
mov ecx, ebx
push eax
call fcn.004789f3
pop ecx
push 0x10
push dword [ebp + 8]
push eax
push esi
push dword [esp + 0x24]
push dword [edi + 0x10]
mov edx, dword [edi + 0xc]
mov ecx, ebx
call fcn.00475c3b
add esp, 0x18
jmp 0x47896c
cmp esi, 0x55
jl 0x4786ea
cmp esi, 0x5e
jle 0x477ec7
cmp esi, 0x5f
je 0x477e2b
cmp esi, 0x60
jne 0x4786ea
mov edx, dword [edi + 0xc]
lea eax, [esp + 0x30]
push eax
mov ecx, ebx
call fcn.004789f3
mov edi, dword [ebp + 8]
mov edx, esi
pop ecx
mov ecx, dword [esp + 0x10]
push 0
push edi
push eax
call fcn.004698fa
add esp, 0xc
jmp 0x478970
mov esi, dword [edi + 8]
xor edi, edi
push edi
push edx
push edi
push 0x61
pop edx
call fcn.004698fa
add esp, 0xc
push edi
jmp 0x477fb4
cmp esi, 0x99
jg 0x4786bb
je 0x47838e
sub esi, 0x65
je 0x478382
sub esi, 0x12
je 0x47836a
sub esi, 0xd
je 0x478359
dec esi
je 0x478349
dec esi
je 0x47830a
dec esi
je 0x4782d2
sub esi, 0xd
jne 0x4786ea
mov edx, dword [edi + 0xc]
lea eax, [esp + 0x30]
push eax
mov ecx, ebx
call fcn.004789f3
mov edx, dword [edi + 0x10]
mov esi, eax
pop ecx
lea eax, [esp + 0x38]
mov ecx, ebx
push eax
call fcn.004789f3
pop ecx
push 0x90
push dword [ebp + 8]
push eax
xor eax, eax
cmp dword [esp + 0x20], 0x49
push esi
sete al
add eax, 0x4e
push eax
jmp 0x4781d0
movsx eax, word [edi + 0x20]
push 0
push edx
push eax
push 0x1f
pop edx
call fcn.004698fa
mov eax, dword [edi + 8]
add esp, 0xc
cmp byte [eax + 1], 0
je 0x47896c
movsx ecx, word [edi + 0x20]
or edx, 0xffffffff
mov eax, dword [ebx + 0x1d8]
push 0xfffffffffffffffe
push dword [eax + ecx*4 - 4]
jmp 0x477fb7
mov ecx, dword [edi + 8]
add ecx, 2
call fcn.0045603a
mov edi, dword [esp + 0x10]
mov edx, ecx
lea esi, [eax - 1]
mov ecx, dword [edi]
push esi
call fcn.00456df6
pop ecx
push 0xffffffffffffffff
push eax
push 0
push dword [ebp + 8]
mov eax, esi
mov ecx, edi
cdq
sub eax, edx
sar eax, 1
push eax
push 0x1e
pop edx
call fcn.00469983
add esp, 0x14
jmp 0x47896c
push edx
mov edx, dword [edi + 8]
push 0
call fcn.0047794a
jmp 0x477fc0
push edx
push 0
mov edx, edi
mov ecx, ebx
call fcn.004779bb
jmp 0x477fc0
push 0
push 0
mov edx, edi
mov ecx, ebx
call fcn.00477254
pop ecx
pop ecx
mov dword [esp + 0xc], eax
jmp 0x47896c
push 0
push edx
push 0
push 0x1c
jmp 0x477f54
mov eax, dword [eax + 0x10]
and dword [esp + 0x14], 0
and dword [esp + 0x24], 0
test dword [edi + 4], 0x4000
mov eax, dword [eax + 0xc]
mov al, byte [eax + 0x4d]
mov byte [esp + 0x2c], al
je 0x4784a1
xor esi, esi
mov dword [esp + 0x18], esi
xor edx, edx
mov ecx, dword [edi + 8]
mov dword [esp + 0x34], edx
mov dword [esp + 0x20], ecx
call fcn.0045603a
push 0
push dword [esp + 0x30]
mov dword [esp + 0x48], eax
push edx
mov edx, ecx
mov ecx, dword [esp + 0x28]
push eax
call fcn.00480669
mov ecx, eax
add esp, 0x10
mov dword [esp + 0x2c], ecx
test ecx, ecx
je 0x4786a3
cmp dword [ecx + 0xc], 0
je 0x4786a3
movzx eax, word [ecx + 2]
test eax, 0x200
je 0x4784b7
mov esi, dword [esp + 0x10]
mov ecx, esi
call fcn.00469a3a
mov edx, dword [esp + 0x18]
mov ecx, ebx
mov edi, dword [ebp + 8]
push edi
mov dword [esp + 0x28], eax
mov edx, dword [edx + 4]
mov edx, dword [edx]
call fcn.00478aa9
pop ecx
mov ecx, dword [esp + 0x34]
cmp ecx, 1
jle 0x478491
dec ecx
mov dword [esp + 0x1c], 0x18
mov dword [esp + 0x14], ecx
push 0
push dword [esp + 0x28]
mov ecx, esi
push edi
push 0x4d
pop edx
call fcn.004698fa
add esp, 0xc
mov edx, edi
mov ecx, ebx
push 1
call fcn.00477b67
mov eax, dword [esp + 0x1c]
inc dword [ebx + 0x64]
pop ecx
push edi
mov edx, dword [eax + 4]
mov ecx, ebx
mov eax, dword [esp + 0x20]
mov edx, dword [eax + edx]
call fcn.00478aa9
pop ecx
mov ecx, ebx
call fcn.00477ba7
add dword [esp + 0x1c], 0x18
dec dword [esp + 0x14]
jne 0x478445
mov edx, dword [esp + 0x24]
mov ecx, esi
call fcn.00469a77
jmp 0x478970
mov esi, dword [edi + 0x14]
mov dword [esp + 0x18], esi
test esi, esi
je 0x4783b8
mov edx, dword [esi]
jmp 0x4783ba
test eax, 0x400
je 0x4784d2
mov edx, dword [esi + 4]
mov ecx, ebx
push dword [ebp + 8]
mov edx, dword [edx]
call fcn.00478aa9
jmp 0x477fc1
mov ecx, dword [esp + 0x34]
xor eax, eax
mov dword [esp + 0x18], eax
test ecx, ecx
jle 0x478564
mov edi, dword [esp + 0x2c]
xor edx, edx
mov dword [esp + 0x20], edx
cmp eax, 0x20
jge 0x478522
mov eax, dword [esi + 4]
xor edx, edx
mov ecx, dword [esp + 0x20]
inc edx
mov ecx, dword [ecx + eax]
call fcn.00476cba
mov edx, dword [esp + 0x20]
test eax, eax
je 0x47851a
mov ecx, dword [esp + 0x18]
xor eax, eax
inc eax
shl eax, cl
or dword [esp + 0x14], eax
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x34]
test byte [edi + 2], 0x20
je 0x478550
cmp dword [esp + 0x24], 0
jne 0x478550
mov edx, dword [esi + 4]
mov ecx, dword [esp + 0x20]
mov edx, dword [edx + ecx]
mov ecx, ebx
call fcn.00475a79
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x20]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0x18]
inc eax
add edx, 0x18
mov dword [esp + 0x18], eax
mov dword [esp + 0x20], edx
cmp eax, ecx
jl 0x4784ee
mov edi, dword [esp + 0x28]
test esi, esi
je 0x4785d4
cmp dword [esp + 0x14], 0
je 0x478580
mov eax, dword [ebx + 0x48]
lea edx, [eax + 1]
add eax, ecx
mov dword [esp + 0x18], edx
mov dword [ebx + 0x48], eax
jmp 0x47858f
mov edx, ecx
mov ecx, ebx
call fcn.0047987b
mov edx, eax
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x2c]
test byte [eax + 2], 0xc0
je 0x4785ba
mov ecx, dword [esi + 4]
mov ecx, dword [ecx]
mov dword [esp + 0x28], ecx
mov cl, byte [ecx]
cmp cl, 0x9a
je 0x4785ae
cmp cl, 0x9c
jne 0x4785ba
mov al, byte [eax + 2]
mov ecx, dword [esp + 0x28]
and al, 0xc0
mov byte [ecx + 0x26], al
inc dword [ebx + 0x64]
mov ecx, ebx
push 3
push edx
mov edx, esi
call fcn.00478b7c
pop ecx
pop ecx
mov ecx, ebx
call fcn.00477ba7
jmp 0x4785d9
and dword [esp + 0x18], 0
mov ecx, dword [esp + 0x34]
cmp ecx, 2
jl 0x478604
test byte [edi + 4], 0x80
je 0x478604
mov eax, dword [esi + 4]
push dword [eax + 0x18]
mov esi, dword [esp + 0x20]
mov edx, dword [esp + 0x30]
push ecx
mov ecx, esi
call fcn.00494107
pop ecx
pop ecx
mov edi, eax
jmp 0x478617
test ecx, ecx
jle 0x47860f
mov eax, dword [esi + 4]
push dword [eax]
jmp 0x4785ee
mov edi, dword [esp + 0x2c]
mov esi, dword [esp + 0x1c]
test byte [edi + 2], 0x20
je 0x478654
cmp dword [esp + 0x24], 0
jne 0x47862b
mov eax, dword [esi + 8]
mov dword [esp + 0x24], eax
mov esi, dword [esp + 0x10]
xor eax, eax
push eax
push eax
push eax
push 0x24
pop edx
mov ecx, esi
call fcn.004698fa
add esp, 0xc
mov edx, eax
mov ecx, esi
push 0xfffffffffffffffc
push dword [esp + 0x28]
call fcn.00469ea9
pop ecx
pop ecx
jmp 0x478658
mov esi, dword [esp + 0x10]
push 0xfffffffffffffffb
push edi
push dword [ebp + 8]
mov edi, dword [esp + 0x24]
xor edx, edx
push edi
push dword [esp + 0x24]
inc edx
mov ecx, esi
call fcn.00469983
mov edx, dword [esp + 0x48]
add esp, 0x14
mov ecx, esi
call fcn.00469ce9
mov eax, edx
test eax, eax
je 0x47896c
cmp dword [esp + 0x14], 0
jne 0x47896c
push eax
mov edx, edi
mov ecx, ebx
call fcn.004798a6
jmp 0x477fc1
push dword [esp + 0x20]
push dword [esp + 0x44]
push str.unknown_function:__.s__
push ebx
call fcn.004560c2
jmp 0x478969
sub esi, 0x9a
je 0x478936
dec esi
je 0x47890d
dec esi
je 0x4788e0
dec esi
je 0x478859
dec esi
je 0x477e2b
dec esi
je 0x478851
mov eax, dword [edi + 0x14]
and dword [esp + 0x14], 0
mov dword [esp + 0x40], eax
mov esi, dword [eax + 4]
mov eax, dword [eax]
mov dword [esp + 0x1c], esi
mov dword [esp + 0x2c], eax
call fcn.00469a3a
mov edx, dword [edi + 0xc]
mov dword [esp + 0x18], eax
mov dword [esp + 0x24], edx
test edx, edx
je 0x478770
push 0xc
pop ecx
mov esi, edx
lea edi, [esp + 0x74]
rep movsd dword es:[edi], dword [esi]
lea eax, [esp + 0x30]
mov ecx, ebx
push eax
call fcn.004789f3
and dword [esp + 0x7c], 0xffffefff
and dword [esp + 0x34], 0
mov esi, dword [esp + 0x20]
mov edx, dword [esp + 0x28]
mov dword [esp + 0x94], eax
lea eax, [esp + 0x78]
pop ecx
mov cl, byte [esp + 0x74]
mov dword [esp + 0x50], eax
lea eax, [esp + 0x44]
mov byte [esp + 0x9a], cl
mov byte [esp + 0x74], 0x9f
mov byte [esp + 0x44], 0x4f
mov dword [esp + 0x14], eax
mov eax, dword [esp + 0x2c]
mov edi, dword [esp + 0x10]
lea ecx, [eax - 1]
test ecx, ecx
jle 0x478809
lea eax, [ecx - 1]
shr eax, 1
inc eax
mov dword [esp + 0x28], eax
inc dword [ebx + 0x64]
mov eax, dword [esi]
test edx, edx
je 0x47879c
mov dword [esp + 0x54], eax
jmp 0x4787a0
mov dword [esp + 0x14], eax
mov ecx, edi
call fcn.00469a3a
mov edx, dword [esp + 0x14]
mov esi, eax
push 8
push esi
mov ecx, ebx
call fcn.00478fa0
mov edx, dword [esp + 0x24]
mov ecx, ebx
push dword [ebp + 8]
mov edx, dword [edx + 0x18]
call fcn.00478aa9
add esp, 0xc
mov ecx, edi
push 0
push dword [esp + 0x1c]
push 0
push 0x10
pop edx
call fcn.004698fa
add esp, 0xc
mov ecx, ebx
call fcn.00477ba7
mov edx, esi
mov ecx, edi
call fcn.00469a77
mov esi, dword [esp + 0x1c]
mov edx, dword [esp + 0x24]
add esi, 0x30
dec dword [esp + 0x28]
mov dword [esp + 0x1c], esi
jne 0x47878d
mov eax, dword [esp + 0x2c]
test al, 1
je 0x478832
mov edx, dword [esp + 0x40]
mov ecx, ebx
inc dword [ebx + 0x64]
push dword [ebp + 8]
imul eax, eax, 0x18
mov edx, dword [edx + 4]
mov edx, dword [eax + edx - 0x18]
call fcn.00478aa9
pop ecx
mov ecx, ebx
call fcn.00477ba7
jmp 0x478846
push 0
push dword [ebp + 8]
mov ecx, edi
push 0
push 0x1c
pop edx
call fcn.004698fa
add esp, 0xc
mov edx, dword [esp + 0x18]
mov ecx, edi
jmp 0x4780d3
mov eax, dword [edi + 0x1c]
jmp 0x4788f5
mov eax, dword [edi + 0xc]
mov bl, byte [eax]
mov byte [esp + 0x3f], bl
cmp bl, 0x84
mov ebx, dword [esp + 0x20]
jne 0x478879
push edx
push 1
mov edx, eax
mov ecx, ebx
call fcn.004779bb
jmp 0x47888b
cmp byte [esp + 0x3f], 0x85
jne 0x47888f
push edx
mov edx, dword [eax + 8]
push 1
call fcn.0047794a
pop ecx
pop ecx
jmp 0x4788d8
and dword [esp + 0x7c], 0
lea eax, [esp + 0x30]
push eax
lea edx, [esp + 0x78]
mov byte [esp + 0x78], 0x84
mov ecx, ebx
mov dword [esp + 0x7c], 0x4400
call fcn.004789f3
mov edx, dword [edi + 0xc]
mov esi, eax
pop ecx
lea eax, [esp + 0x38]
mov ecx, ebx
push eax
call fcn.004789f3
pop ecx
push dword [ebp + 8]
mov ecx, dword [esp + 0x14]
push esi
push eax
push 0x5a
pop edx
call fcn.004698fa
add esp, 0xc
mov edi, dword [ebp + 8]
jmp 0x478970
movsx eax, word [edi + 0x22]
mov esi, dword [edi + 0x28]
imul eax, eax, 0x18
add eax, dword [esi + 0x1c]
cmp byte [esi], 0
jne 0x4788f9
mov eax, dword [eax + 0x10]
mov edi, eax
jmp 0x478970
cmp byte [esi + 1], 0
je 0x478936
push edx
push dword [eax + 0xc]
push dword [esi + 8]
push 0x2e
jmp 0x477f54
mov eax, dword [edi + 0x28]
test eax, eax
jne 0x478927
push dword [edi + 8]
push str.misuse_of_aggregate:__s__
push ebx
call fcn.004560c2
jmp 0x477f5a
movsx ecx, word [edi + 0x22]
mov eax, dword [eax + 0x28]
add ecx, ecx
mov eax, dword [eax + ecx*8 + 8]
jmp 0x4788f5
mov ecx, dword [edi + 0x1c]
test ecx, ecx
jns 0x47894f
mov ecx, dword [ebx + 0x5c]
test ecx, ecx
jle 0x47894c
movsx eax, word [edi + 0x20]
add eax, ecx
jmp 0x4788f5
mov ecx, dword [ebx + 0x60]
movzx eax, byte [edi + 0x26]
push eax
movsx eax, word [edi + 0x20]
push edx
mov edx, dword [edi + 0x2c]
push ecx
push eax
mov ecx, ebx
call fcn.00477c6f
mov dword [esp + 0x1c], eax
add esp, 0x10
mov edi, dword [esp + 0xc]
mov edx, dword [esp + 0x30]
mov ecx, ebx
call fcn.00479847
mov edx, dword [esp + 0x38]
call fcn.00479847
mov eax, edi
mov ecx, dword [esp + 0xa4]
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.0054d1e7
mov esp, ebp
pop ebp
ret