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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x84
mov ecx, dword [ebp + 8]
mov eax, dword [ecx + 8]
push ebx
mov ebx, dword [ebp + 0x14]
push esi
push edi
mov edi, dword [ecx]
mov dword [esp + 0x20], eax
xor eax, eax
mov byte [esp + 0x12], 0
mov dword [esp + 0x18], edi
mov dword [esp + 0x60], eax
mov dword [esp + 0x64], eax
mov dword [esp + 0x68], eax
mov dword [esp + 0x6c], eax
mov dword [esp + 0x70], eax
test ebx, ebx
je 0x476f2b
cmp dword [ebx], 0x40
jl 0x476f2b
xor ebx, ebx
mov dword [ebp + 0x14], ebx
mov dword [esp + 0x68], ebx
test byte [edi + 0x40], 0x20
je 0x476f3c
and dword [ebp + 0x1c], 0xfeff
mov edx, dword [ebp + 0xc]
mov edx, dword [edx]
cmp edx, 0x40
jle 0x476f5f
push 0x40
push 0x4b8150
push ecx
call fcn.00406ec0
add esp, 0xc
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 0x1c]
and eax, 0x20
mov dword [esp + 0x3c], eax
je 0x476f76
mov eax, 1
mov dword [esp + 0x14], eax
jmp 0x476f7c
mov dword [esp + 0x14], edx
mov eax, edx
lea eax, [eax + eax*4]
shl eax, 4
mov dword [esp + 0x4c], eax
add eax, 0x2f7
and eax, 0xfffffff8
mov dword [esp + 0x48], eax
add eax, 0x48
push 0
push eax
mov eax, edi
call fcn.00404490
add esp, 8
cmp byte [edi + 0x45], 0
mov esi, eax
mov dword [esp + 0x50], esi
je 0x476fbe
mov ecx, edi
call fcn.004041a0
xor eax, eax
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [ebp + 8]
mov ecx, dword [ebp + 0xc]
mov edx, dword [ebp + 0x18]
mov dword [esi], eax
or eax, 0xffffffff
mov dword [esi + 4], ecx
mov ecx, dword [esp + 0x20]
mov dword [esi + 0x18], eax
mov dword [esi + 0x14], eax
mov al, byte [esp + 0x14]
mov dword [esi + 0xc], edx
mov dword [esi + 8], ebx
mov byte [esi + 0x2a], al
mov eax, dword [ecx + 0xc]
mov ebx, dword [eax + 0x48]
lea ecx, [ebx - 1]
lea edx, [ebx + 1]
mov dword [esp + 0x30], eax
mov dword [eax + 0x48], edx
test ebx, ecx
jne 0x47701d
mov edi, dword [eax + 0x4c]
mov eax, dword [eax]
lea edx, [ebx*8 + 4]
push 0
push edx
call fcn.00404650
mov ecx, dword [esp + 0x38]
mov dword [ecx + 0x4c], eax
add esp, 8
mov eax, ecx
mov eax, dword [eax + 0x4c]
test eax, eax
je 0x47702b
mov dword [eax + ebx*4], 0xffffffff
mov dx, word [ebp + 0x1c]
mov ecx, dword [ebp + 8]
or eax, 0xffffffff
mov word [esi + 0x28], dx
sub eax, ebx
mov dword [esi + 0x1c], eax
mov dword [esi + 0x20], eax
mov ax, word [ebp + 0x20]
mov word [esi + 0x10], ax
mov edx, dword [ecx + 0x88]
mov ecx, dword [esp + 0x4c]
xor eax, eax
mov dword [esi + 0x24], edx
mov dword [esi + 0x2b], eax
mov dword [esi + 0x2f], eax
mov dword [esi + 0x33], eax
mov dword [esi + 0x37], eax
mov dword [esi + 0x3b], eax
mov dword [esi + 0x3f], eax
mov dword [esi + 0x43], eax
mov dword [esi + 0x47], eax
add ecx, 0x48
mov dword [esi + 0x4b], eax
push ecx
mov byte [esi + 0x4f], al
lea eax, [esi + 0x2f0]
push 0
push eax
call fcn.004a6b70
mov edx, dword [esp + 0x54]
lea eax, [esi + edx]
mov dword [esp + 0x78], eax
mov dword [esp + 0x6c], esi
lea edi, [esi + 0x50]
mov dword [esp + 0x70], edi
lea ecx, [eax + 0x38]
mov dword [eax + 0x30], ecx
mov ecx, 3
mov word [eax + 0x2c], cx
xor ecx, ecx
mov dword [eax + 0x24], ecx
xor edx, edx
mov word [eax + 0x28], dx
mov eax, dword [ebp + 0x10]
add esp, 0xc
mov dword [esi + 0x1e8], ecx
push 0x1c
push eax
lea ebx, [esi + 0x1e8]
lea edx, [edi + 0x18]
push edi
mov dword [esp + 0x68], edi
mov dword [edi], esi
mov dword [edi + 4], ecx
mov dword [edi + 0xc], ecx
mov dword [edi + 0x10], 8
mov dword [edi + 0x14], edx
call fcn.00471890
mov ecx, dword [esp + 0x70]
add esp, 0xc
cmp dword [ecx + 0xc], 0
mov dword [esp + 0x1c], 0
jle 0x4771d2
mov dword [esp + 0x24], 0
cmp dword [esp + 0x14], 0
je 0x477187
mov eax, dword [esp + 0x24]
mov edx, dword [ecx + 0x14]
mov edx, dword [eax + edx]
xor eax, eax
mov dword [esp + 0x78], eax
mov dword [esp + 0x7c], eax
mov dword [esp + 0x88], eax
mov dword [esp + 0x8c], eax
mov dword [esp + 0x74], eax
mov dword [esp + 0x80], eax
mov dword [esp + 0x84], eax
mov byte [esp + 0x88], 2
mov dword [esp + 0x78], 0x439240
mov dword [esp + 0x7c], 0x439330
mov dword [esp + 0x8c], eax
test edx, edx
je 0x477187
push edx
lea ecx, [esp + 0x78]
push ecx
call fcn.004349c0
add esp, 8
cmp byte [esp + 0x88], 0
je 0x4771b7
mov ecx, dword [esp + 0x64]
mov eax, dword [ecx + 0x14]
mov edx, dword [esi + 0x20]
mov ecx, dword [esp + 0x24]
push 0x10
push edx
mov edx, dword [eax + ecx]
mov eax, dword [ebp + 8]
push edx
push eax
call fcn.0043de90
mov ecx, dword [esp + 0x74]
mov edx, dword [ecx + 0x14]
mov eax, dword [esp + 0x34]
lea eax, [edx + eax + 0xa]
add esp, 0x10
or word [eax], 4
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x64]
add dword [esp + 0x24], 0x30
inc eax
mov dword [esp + 0x1c], eax
cmp eax, dword [ecx + 0xc]
jl 0x47710d
cmp dword [esp + 0x14], 0
jne 0x4771f2
mov eax, dword [ebp + 0x14]
test eax, eax
je 0x4771e5
mov cl, byte [eax]
mov byte [esi + 0x2b], cl
test dword [ebp + 0x1c], 0x100
je 0x4771f2
mov byte [esi + 0x2f], 1
mov edx, dword [ebp + 0xc]
cmp dword [edx], 0
mov dword [esp + 0x1c], 0
jle 0x477242
mov eax, edx
add eax, 8
mov dword [esp + 0x30], eax
jmp 0x477210
mov eax, dword [esp + 0x30]
mov edx, dword [eax + 0x30]
mov ecx, dword [ebx]
push edi
push eax
mov eax, dword [ebp + 8]
mov dword [ebx + ecx*4 + 4], edx
inc dword [ebx]
push eax
call fcn.00471cd0
mov eax, dword [esp + 0x28]
mov ecx, dword [ebp + 0xc]
add dword [esp + 0x3c], 0x50
inc eax
add esp, 0xc
mov dword [esp + 0x1c], eax
cmp eax, dword [ecx]
jl 0x477210
mov eax, dword [edi + 0xc]
dec eax
mov dword [esp + 0x30], eax
js 0x477268
lea esp, [esp]
mov edx, dword [esp + 0x30]
mov eax, dword [ebp + 0xc]
push edx
push edi
push eax
call fcn.00470db0
add esp, 0xc
dec dword [esp + 0x30]
jns 0x477250
mov ecx, dword [esp + 0x18]
cmp byte [ecx + 0x45], 0
jne 0x477991
mov eax, dword [ebp + 0x1c]
and eax, 0x100
mov dword [esp + 0x48], eax
je 0x4772b7
mov edx, dword [ebp + 0x18]
mov eax, dword [ebp + 8]
push edx
push edi
push eax
mov eax, dword [ebp + 0xc]
call fcn.00472440
add esp, 0xc
test eax, eax
je 0x4772a2
mov byte [esi + 0x2f], 1
jmp 0x4772b7
cmp dword [ebp + 0x14], 0
jne 0x4772b7
mov edx, dword [ebp + 0x18]
mov ecx, 0x80
or word [esi + 0x28], cx
mov dword [esi + 8], edx
cmp dword [esp + 0x14], 1
jne 0x4772cb
lea ecx, [esp + 0x60]
call fcn.00476cf0
test eax, eax
jne 0x47731b
lea eax, [esp + 0x60]
push eax
call fcn.00475b70
add esp, 4
test eax, eax
jne 0x477991
push eax
push esi
call fcn.00476410
mov edi, dword [esp + 0x20]
add esp, 8
cmp byte [edi + 0x45], 0
jne 0x477991
cmp dword [esi + 8], 0
je 0x477321
mov cx, word [esi + 0x48]
inc cx
movzx edx, cx
push edx
push esi
call fcn.00476410
add esp, 8
cmp byte [edi + 0x45], 0
jne 0x477991
cmp dword [esi + 8], 0
jne 0x477339
mov ecx, dword [esp + 0x18]
test dword [ecx + 0x18], 0x20000
je 0x47733d
or eax, 0xffffffff
mov dword [esi + 0x40], eax
mov dword [esi + 0x44], eax
jmp 0x47733d
mov ecx, dword [esp + 0x18]
mov eax, dword [ebp + 8]
cmp dword [eax + 0x24], 0
jne 0x477991
cmp byte [ecx + 0x45], 0
jne 0x477991
cmp byte [esi + 0x2a], 2
jb 0x477450
mov eax, dword [ebp + 0x18]
test eax, eax
je 0x477450
mov edx, 0x400
test word [ecx + 0x40], dx
jne 0x477450
push eax
push ebx
call fcn.00471ba0
mov dword [esp + 0x48], eax
mov eax, dword [esp + 0x70]
add esp, 8
mov dword [esp + 0x44], edx
test eax, eax
je 0x4773a4
push eax
push ebx
call fcn.00471ba0
or dword [esp + 0x48], eax
add esp, 8
or dword [esp + 0x44], edx
cmp byte [esi + 0x2a], 2
jb 0x477450
movzx eax, byte [esi + 0x2a]
lea ecx, [eax + eax*4]
add ecx, ecx
mov eax, dword [esi + ecx*8 + 0x2e0]
movzx ecx, byte [eax + 0x10]
lea edx, [ecx + ecx*4]
mov ecx, dword [esi + 4]
shl edx, 4
test byte [edx + ecx + 0x2c], 8
je 0x477450
cmp word [esp + 0x48], 0
jne 0x4773e3
test dword [eax + 0x24], 0x1000
je 0x477450
mov edx, dword [eax + 8]
mov edi, dword [eax + 0xc]
mov eax, edx
and eax, dword [esp + 0x40]
mov ecx, edi
and ecx, dword [esp + 0x44]
mov dword [esp + 0x30], edx
or eax, ecx
jne 0x477450
mov eax, dword [esp + 0x64]
mov ebx, dword [eax + 0xc]
mov ecx, dword [eax + 0x14]
lea ebx, [ebx + ebx*2]
shl ebx, 4
add ebx, ecx
cmp ecx, ebx
jae 0x47743c
jmp 0x477419
mov edx, dword [esp + 0x30]
mov eax, dword [ecx + 0x28]
and eax, edx
mov edx, dword [ecx + 0x2c]
and edx, edi
or eax, edx
je 0x47742f
mov edx, dword [ecx]
test byte [edx + 4], 1
je 0x477438
add ecx, 0x30
cmp ecx, ebx
jb 0x477415
jmp 0x47743c
cmp ecx, ebx
jb 0x477450
mov al, byte [esi + 0x2a]
dec dword [esp + 0x14]
dec al
mov byte [esi + 0x2a], al
cmp al, 2
jae 0x4773ae
movsx ecx, word [esi + 0x48]
mov eax, dword [esi]
mov dl, byte [ebp + 0x1c]
add dword [eax + 0x88], ecx
test dl, 4
je 0x4774af
mov edi, dword [esi + 0x330]
mov ecx, dword [edi + 0x24]
mov eax, ecx
shr eax, 0xc
and eax, 1
jne 0x477484
test dl, 8
je 0x4774af
test ecx, 0x400
jne 0x4774af
test eax, eax
sete al
inc al
mov byte [esi + 0x2d], al
mov eax, dword [ebp + 0xc]
mov eax, dword [eax + 0x18]
test byte [eax + 0x2c], 0x20
jne 0x4774af
test cl, 0x40
je 0x4774af
test dl, 8
je 0x4774a9
mov byte [esp + 0x12], 8
and ecx, 0xffffffbf
mov dword [edi + 0x24], ecx
mov eax, dword [esp + 0x14]
mov edi, dword [esp + 0x20]
test eax, eax
jle 0x4778ba
lea ecx, [esi + 0x330]
mov dword [esp + 0x24], ecx
mov dword [esp + 0x4c], eax
lea ecx, [ecx]
mov edx, dword [esp + 0x24]
movzx eax, byte [edx - 0x14]
mov ecx, dword [ebp + 0xc]
lea eax, [eax + eax*4]
add eax, eax
lea eax, [ecx + eax*8 + 8]
mov dword [esp + 0x2c], eax
mov eax, dword [eax + 0x10]
mov edx, dword [eax + 0x44]
mov dword [esp + 0x28], eax
mov dword [esp + 0x48], edx
mov dword [esp + 0x1c], 0xfff0bdc0
mov dword [esp + 0x30], 0
test edx, edx
je 0x477552
mov ecx, dword [esp + 0x18]
mov ecx, dword [ecx + 0x14]
xor ebx, ebx
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x30], 1
test ecx, ecx
jle 0x477552
mov eax, dword [esp + 0x18]
mov eax, dword [eax + 0x10]
add eax, 0xc
jmp 0x477534
mov edx, dword [esp + 0x48]
cmp dword [eax], edx
je 0x47754a
mov edx, dword [esp + 0x30]
inc ebx
add eax, 0x10
rol edx, 1
mov dword [esp + 0x30], edx
cmp ebx, ecx
jl 0x477530
mov eax, dword [esp + 0x28]
mov dword [esp + 0x1c], ebx
mov ecx, dword [esp + 0x24]
mov edx, dword [ecx]
mov cl, byte [eax + 0x2c]
mov dword [esp + 0x40], edx
test cl, 2
jne 0x47774c
cmp dword [eax + 0xc], 0
jne 0x47774c
mov edx, dword [edx + 0x24]
test edx, 0x400
je 0x477647
mov ebx, dword [eax + 0x3c]
test ebx, ebx
je 0x477597
mov edx, dword [ebx]
cmp edx, dword [esp + 0x18]
je 0x477597
mov ebx, dword [ebx + 0x18]
test ebx, ebx
jne 0x477588
mov eax, dword [esp + 0x2c]
mov edx, dword [eax + 0x30]
mov ecx, dword [edi + 0x88]
mov eax, dword [edi + 0xc]
cmp dword [eax + 0x30], ecx
jg 0x4775c6
push 0
push 0
push edx
push 0x9a
mov esi, edi
call fcn.00423ce0
mov esi, dword [esp + 0x60]
add esp, 0x10
jmp 0x4775f5
lea eax, [ecx + 1]
mov dword [edi + 0x88], eax
mov edi, dword [edi + 0x58]
lea eax, [ecx + ecx*4]
lea eax, [edi + eax*4]
mov edi, dword [esp + 0x20]
mov dword [eax + 4], edx
xor edx, edx
mov byte [eax + 3], 0
mov dword [eax + 8], edx
mov dword [eax + 0xc], edx
mov dword [eax + 0x10], edx
mov word [eax], 0x9a
mov eax, ecx
mov ecx, dword [edi]
cmp byte [ecx + 0x45], 0
jne 0x47774c
test eax, eax
jns 0x47760c
mov eax, dword [edi + 0x88]
dec eax
lea edx, [eax + eax*4]
mov eax, dword [edi + 0x58]
cmp byte [eax + edx*4 + 1], 0
lea ecx, [eax + edx*4]
je 0x477630
push ebx
push edi
mov eax, 0xfffffff8
call fcn.004249b0
add esp, 8
jmp 0x47774c
test ebx, ebx
je 0x47774c
mov dword [ecx + 0x10], ebx
mov byte [ecx + 1], 0xf8
inc dword [ebx + 0xc]
jmp 0x47774c
test cl, 0x10
jne 0x47774c
test dl, 0x40
jne 0x47772c
cmp word [esp + 0x3c], 0
jne 0x47772c
cmp byte [esi + 0x2d], 0
mov eax, 0x68
je 0x47767f
mov ecx, dword [esp + 0x2c]
mov edx, dword [ecx + 0x30]
mov eax, 0x69
mov dword [esi + 0x14], edx
mov ebx, dword [esp + 0x2c]
mov ecx, dword [ebx + 0x30]
mov edx, dword [ebp + 8]
push eax
mov eax, dword [esp + 0x20]
push eax
mov eax, dword [esp + 0x30]
push ecx
push edx
call fcn.00451a00
add esp, 0x10
cmp byte [esi + 0x2d], 0
jne 0x477712
mov eax, dword [esp + 0x28]
cmp word [eax + 0x26], 0x40
jge 0x477712
test byte [eax + 0x2c], 0x20
jne 0x477712
mov ecx, dword [ebx + 0x40]
mov edx, dword [ebx + 0x44]
mov ebx, ecx
xor eax, eax
or ebx, edx
je 0x4776cf
shrd ecx, edx, 1
shr edx, 1
mov ebx, ecx
inc eax
or ebx, edx
jne 0x4776c2
mov ecx, dword [edi]
cmp byte [ecx + 0x45], 0
je 0x4776e3
mov edx, 0xfffffff5
call fcn.00424820
jmp 0x477712
mov ecx, dword [edi + 0x88]
mov edx, dword [edi + 0x58]
lea ecx, [ecx + ecx*4 - 5]
cmp byte [edx + ecx*4 + 1], 0
lea ecx, [edx + ecx*4]
je 0x47770b
push eax
push edi
mov eax, 0xfffffff5
call fcn.004249b0
add esp, 8
jmp 0x477712
mov dword [ecx + 0x10], eax
mov byte [ecx + 1], 0xf5
mov eax, dword [edi + 0x88]
test eax, eax
jle 0x47774c
mov ecx, dword [edi + 0x58]
mov dl, byte [esp + 0x12]
lea eax, [eax + eax*4]
mov byte [ecx + eax*4 - 0x11], dl
jmp 0x47774c
mov eax, dword [esp + 0x28]
mov ecx, dword [eax]
mov edx, dword [eax + 0x1c]
mov ebx, dword [esp + 0x1c]
mov eax, dword [ebp + 8]
push ecx
push 0
push edx
call fcn.004427b0
mov edi, dword [esp + 0x2c]
add esp, 0xc
mov eax, dword [esp + 0x40]
test dword [eax + 0x24], 0x200
je 0x477879
mov ecx, eax
mov edx, dword [ecx + 0x20]
mov eax, dword [esp + 0x28]
test byte [eax + 0x2c], 0x20
mov dword [esp + 0x48], edx
mov ecx, 0x68
je 0x477791
mov eax, dword [edx + 0x38]
and al, 3
cmp al, 2
jne 0x477791
cmp word [esp + 0x3c], 0
je 0x477791
mov ecx, dword [esp + 0x24]
mov eax, dword [ecx - 0x3c]
xor ecx, ecx
jmp 0x4777e0
cmp byte [esi + 0x2d], 0
je 0x4777be
mov eax, dword [esp + 0x2c]
mov ecx, dword [eax + 0x10]
mov ecx, dword [ecx + 8]
mov eax, dword [ebp + 0x20]
test ecx, ecx
je 0x4777b4
cmp ecx, edx
je 0x4777b4
mov ecx, dword [ecx + 0x14]
inc eax
test ecx, ecx
jne 0x4777a8
mov ecx, 0x69
mov dword [esi + 0x18], eax
jmp 0x4777e0
mov eax, dword [ebp + 0x20]
test eax, eax
je 0x4777d4
cmp word [esp + 0x3c], 0
je 0x4777d4
mov ecx, 0x67
jmp 0x4777e0
mov edx, dword [ebp + 8]
mov eax, dword [edx + 0x28]
lea ebx, [eax + 1]
mov dword [edx + 0x28], ebx
mov edx, dword [esp + 0x24]
mov dword [edx - 0x38], eax
test ecx, ecx
je 0x477879
mov edx, dword [esp + 0x1c]
push edx
mov edx, dword [esp + 0x4c]
mov edx, dword [edx + 0x2c]
push edx
push eax
push ecx
push edi
call fcn.00423d20
mov eax, dword [ebp + 8]
mov ecx, dword [esp + 0x5c]
mov ebx, dword [eax + 8]
add esp, 0x14
push ecx
mov edx, eax
push edx
call fcn.00449c50
add esp, 8
test eax, eax
je 0x47784c
mov ecx, dword [ebx]
cmp byte [ecx + 0x45], 0
je 0x477835
mov edx, 0xfffffffb
call fcn.00424820
jmp 0x47784c
mov ecx, dword [ebx + 0x88]
mov edx, dword [ebx + 0x58]
lea ecx, [ecx + ecx*4]
lea ecx, [edx + ecx*4 - 0x14]
mov byte [ecx + 1], 0xfb
mov dword [ecx + 0x10], eax
mov eax, dword [esp + 0x40]
mov eax, dword [eax + 0x24]
test al, 0xf
je 0x477879
test eax, 0x8002
jne 0x477879
test byte [esi + 0x28], 1
jne 0x477879
mov eax, dword [edi + 0x88]
test eax, eax
jle 0x477879
mov edx, dword [edi + 0x58]
lea ecx, [eax + eax*4]
mov byte [edx + ecx*4 - 0x11], 2
mov edx, dword [esp + 0x1c]
test edx, edx
js 0x4778ab
mov ebx, dword [ebp + 8]
mov eax, dword [ebx + 0x7c]
test eax, eax
je 0x47788d
mov ebx, eax
mov eax, dword [ebx + 0x60]
mov ecx, dword [esp + 0x30]
test ecx, eax
jne 0x4778ab
or eax, ecx
mov dword [ebx + 0x60], eax
cmp edx, 1
jne 0x4778ab
call fcn.00449330
mov edi, dword [esp + 0x20]
add dword [esp + 0x24], 0x50
dec dword [esp + 0x4c]
jne 0x4774d0
mov eax, dword [edi + 0x88]
mov ecx, dword [esp + 0x18]
mov dword [esi + 0x34], eax
cmp byte [ecx + 0x45], 0
jne 0x477991
or eax, 0xffffffff
xor ebx, ebx
mov dword [esp + 0x50], eax
mov dword [esp + 0x54], eax
cmp dword [esp + 0x14], ebx
jle 0x477988
lea edi, [esi + 0x31c]
mov edx, dword [edi + 0x14]
test dword [edx + 0x24], 0x4000
je 0x477933
mov ecx, dword [esp + 0x54]
mov edx, dword [esp + 0x50]
lea eax, [edi - 0x2c]
push eax
movzx eax, byte [edi]
push ecx
mov ecx, dword [ebp + 0xc]
lea eax, [eax + eax*4]
push edx
add eax, eax
lea edx, [ecx + eax*8 + 8]
mov eax, dword [esp + 0x68]
mov ecx, dword [ebp + 8]
push edx
push eax
push ecx
call fcn.00472650
mov edx, dword [esp + 0x30]
add esp, 0x18
cmp byte [edx + 0x45], 0
jne 0x477991
movzx ecx, byte [edi]
mov eax, dword [ebp + 0x1c]
push eax
mov eax, dword [ebp + 0xc]
push ecx
mov ecx, dword [ebp + 8]
push ebx
lea edx, [edi - 0x2c]
push eax
call fcn.0046cc80
mov ecx, dword [esp + 0x30]
mov edx, dword [ecx + 0x88]
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x60]
push eax
push ecx
push ebx
push esi
mov dword [edi - 0xc], edx
call fcn.0046e050
mov dword [esp + 0x74], edx
mov edx, dword [edi - 0x14]
inc ebx
add esp, 0x20
add edi, 0x50
mov dword [esp + 0x50], eax
mov dword [esi + 0x1c], edx
cmp ebx, dword [esp + 0x14]
jl 0x4778ee
mov eax, esi
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret
mov eax, dword [esi + 0x24]
mov ecx, dword [ebp + 8]
mov dword [ecx + 0x88], eax
mov eax, dword [esp + 0x18]
mov ebx, esi
call fcn.004738a0
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret