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

Disassembly:
push 0xffffffffffffffff
push 0x4d23cc
mov eax, dword fs:[0]
push eax
sub esp, 0xa8
mov eax, dword [0x5254e0]
xor eax, esp
mov dword [esp + 0xa0], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x5254e0]
xor eax, esp
push eax
lea eax, [esp + 0xbc]
mov dword fs:[0], eax
mov eax, dword [esp + 0xcc]
mov edi, dword [esp + 0xd4]
mov edx, dword [esp + 0xd8]
mov dword [esp + 0x20], ecx
mov ecx, dword [esp + 0xd0]
mov dword [esp + 0x2c], ecx
mov ecx, dword [esp + 0xdc]
xor ebp, ebp
mov dword [esp + 0x8c], ebp
mov dword [esp + 0x68], eax
mov eax, dword [ecx + 8]
mov dword [esp + 0x4c], ecx
mov ecx, dword [ecx + 0xc]
mov dword [esp + 0x78], edi
mov dword [esp + 0x14], edx
mov esi, eax
cmp eax, ebp
je 0x479cbc
lea eax, [ecx + eax*4 - 4]
nop
cmp dword [eax], ebp
jne 0x479d15
dec esi
sub eax, 4
cmp esi, ebp
jne 0x479cb0
xor ebx, ebx
mov esi, dword [edi + 8]
mov edi, dword [edi + 0xc]
mov dword [esp + 0x24], ebx
cmp esi, ebp
je 0x479cdc
lea eax, [edi + esi*4 - 4]
cmp dword [eax], ebp
jne 0x479d2c
dec esi
sub eax, 4
cmp esi, ebp
jne 0x479cd0
xor eax, eax
mov dword [esp + 0x30], eax
cmp eax, ebx
lea eax, [esp + 0x24]
jb 0x479cee
lea eax, [esp + 0x30]
mov eax, dword [eax]
mov dword [esp + 0x64], eax
cmp eax, ebp
jne 0x479d41
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx]
mov edx, dword [eax + 8]
call edx
mov esi, dword [esp + 0x68]
push eax
push esi
call fcn.0046ae30
mov eax, esi
jmp 0x47a909
cmp esi, ebp
je 0x479cbc
lea eax, [ecx + esi*4 - 4]
call fcn.0045d020
lea ebx, [esi - 1]
shl ebx, 5
add ebx, eax
jmp 0x479cbe
cmp esi, ebp
je 0x479cdc
lea eax, [edi + esi*4 - 4]
call fcn.0045d020
dec esi
shl esi, 5
add eax, esi
jmp 0x479cde
cmp eax, 0x2e
ja 0x479d50
mov dword [esp + 0x5c], 1
jmp 0x479d62
mov ecx, 0x104
cmp ecx, eax
sbb eax, eax
neg eax
add eax, 2
mov dword [esp + 0x5c], eax
mov ecx, dword [esp + 0x5c]
mov ebx, 1
shl ebx, cl
lea esi, [esp + 0x7c]
mov dword [esp + 0x7c], ebp
mov dword [esp + 0x80], ebp
mov eax, ebx
shl eax, cl
mov dword [esp + 0x48], ebx
mov dword [esp + 0x84], ebp
mov dword [esp + 0x18], eax
call fcn.0047b1b0
mov edi, dword [esp + 0x2c]
mov dword [esp + 0xc4], 1
mov ebp, dword [esp + 0x7c]
lea eax, [ebp + 0x14]
push eax
mov dword [esp + 0x5c], eax
call fcn.0046b080
mov edi, dword [esp + 0x14]
lea esi, [ebx + ebx*4]
add esi, esi
add esi, esi
lea eax, [esi + ebp]
push eax
mov dword [esp + 0x54], eax
call fcn.0046b080
cmp dword [esp + 0x5c], 1
mov ecx, dword [esp + 0x20]
jne 0x479df6
mov edx, dword [ecx]
mov edx, dword [edx + 0xc]
mov eax, edi
push eax
mov eax, dword [esp + 0x30]
push eax
add ebp, 0x3c
call edx
push ebp
mov edi, eax
call fcn.0046b080
jmp 0x47a002
mov eax, dword [ecx]
mov edx, dword [esp + 0x2c]
mov eax, dword [eax + 0x18]
lea edi, [ebp + 0x28]
push edx
mov dword [esp + 0x34], edi
call eax
push edi
mov edi, eax
call fcn.0046b080
mov ecx, dword [esp + 0x20]
mov edx, dword [ecx]
mov edx, dword [edx + 0x18]
lea eax, [ebx + ebx*4]
add eax, eax
add eax, eax
add eax, eax
lea edi, [eax + ebp]
mov dword [esp + 0x54], eax
mov eax, dword [esp + 0x14]
push eax
mov dword [esp + 0x64], edi
call edx
push edi
mov edi, eax
call fcn.0046b080
cmp ebx, 3
jbe 0x479e75
lea eax, [ebx - 4]
shr eax, 1
add ebp, 0x3c
inc eax
mov dword [esp + 0x24], eax
nop
mov edx, dword [esp + 0x30]
mov ecx, dword [esp + 0x20]
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
push edx
lea edx, [ebp - 0x28]
push edx
call eax
push ebp
mov edi, eax
call fcn.0046b080
add ebp, 0x28
dec dword [esp + 0x24]
jne 0x479e50
mov dword [esp + 0x1c], 1
cmp ebx, 1
jbe 0x479f0b
mov ecx, dword [esp + 0x50]
mov edx, dword [esp + 0x58]
add ecx, 0x14
mov dword [esp + 0x30], ecx
mov dword [esp + 0x24], edx
lea esp, [esp]
mov ebp, dword [esp + 0x1c]
add ebp, dword [esp + 0x48]
cmp ebp, dword [esp + 0x18]
jae 0x479eed
mov edx, dword [esp + 0x30]
mov ebx, dword [esp + 0x24]
mov dword [esp + 0x50], edx
lea ebx, [ebx]
mov ecx, dword [esp + 0x20]
mov edx, dword [esp + 0x14]
mov eax, dword [ecx]
mov eax, dword [eax + 0xc]
push edx
push ebx
call eax
mov ecx, dword [esp + 0x50]
push ecx
mov edi, eax
call fcn.0046b080
add ebp, dword [esp + 0x48]
add dword [esp + 0x50], esi
add ebx, esi
cmp ebp, dword [esp + 0x18]
jb 0x479ec0
mov eax, dword [esp + 0x1c]
mov ecx, 0x28
add dword [esp + 0x30], ecx
add dword [esp + 0x24], ecx
add eax, 2
mov dword [esp + 0x1c], eax
cmp eax, dword [esp + 0x48]
jb 0x479ea0
mov ecx, dword [esp + 0x48]
lea esi, [ecx + ecx*2]
cmp esi, dword [esp + 0x18]
jae 0x479f62
mov ebp, dword [esp + 0x7c]
add ecx, ecx
mov eax, esi
sub eax, ecx
lea edx, [esi + esi*4]
lea eax, [eax + eax*4]
lea ebx, [ebp + edx*4]
lea ebp, [ebp + eax*4]
mov ecx, dword [esp + 0x20]
mov eax, dword [esp + 0x60]
mov edx, dword [ecx]
mov edx, dword [edx + 0xc]
push eax
push ebp
call edx
push ebx
mov edi, eax
call fcn.0046b080
mov eax, dword [esp + 0x48]
lea esi, [esi + eax*2]
mov eax, dword [esp + 0x54]
add ebp, eax
add ebx, eax
cmp esi, dword [esp + 0x18]
jb 0x479f30
mov ecx, dword [esp + 0x48]
mov edi, dword [esp + 0x20]
mov dword [esp + 0x1c], ecx
cmp ecx, dword [esp + 0x18]
jae 0x47a006
mov edx, dword [esp + 0x7c]
lea eax, [ecx + ecx]
mov dword [esp + 0x60], eax
mov dword [esp + 0x14], eax
lea eax, [eax + eax*4]
add eax, eax
add eax, eax
mov dword [esp + 0x58], eax
lea eax, [ecx + ecx*4 + 0xa]
lea eax, [edx + eax*4]
mov dword [esp + 0x24], eax
mov eax, 2
sub eax, ecx
mov dword [esp + 0x54], eax
mov ecx, dword [esp + 0x14]
mov eax, dword [esp + 0x54]
add eax, ecx
cmp eax, ecx
jae 0x479fe2
mov ebp, dword [esp + 0x24]
mov ebx, dword [esp + 0x20]
mov esi, ecx
sub esi, eax
dec esi
shr esi, 1
inc esi
mov ecx, dword [esp + 0x2c]
mov eax, dword [ebx]
mov eax, dword [eax + 0xc]
push ecx
lea edx, [ebp - 0x14]
push edx
mov ecx, ebx
call eax
push ebp
mov edi, eax
call fcn.0046b080
add ebp, 0x28
dec esi
jne 0x479fc2
mov eax, dword [esp + 0x1c]
mov ecx, dword [esp + 0x60]
mov edx, dword [esp + 0x58]
add dword [esp + 0x24], edx
add dword [esp + 0x14], ecx
add eax, ecx
mov dword [esp + 0x1c], eax
cmp eax, dword [esp + 0x18]
jb 0x479fa4
mov edi, dword [esp + 0x20]
cmp dword [0x52d43c], 0
jne 0x47a01e
call fcn.004698b0
mov dword [0x52d43c], 0x45e930
push 8
mov dword [esp + 0x38], vtable.CryptoPP::Integer.0
mov dword [esp + 0x40], 2
call fcn.004a990b
xor ebx, ebx
add esp, 4
cmp eax, ebx
jne 0x47a065
mov edi, edi
push ebx
call fcn.00499269
mov esi, eax
add esp, 4
cmp esi, ebx
je 0x47a0c0
push esi
call fcn.00499269
call esi
push 8
call fcn.004a990b
add esp, 8
cmp eax, ebx
je 0x47a040
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], ebx
mov dword [eax + 4], ebx
mov edx, dword [esp + 0x40]
mov dword [edx], ebx
mov eax, dword [esp + 0x64]
lea ebp, [eax - 1]
xor edx, edx
lea ecx, [eax - 1]
mov byte [esp + 0xc4], 4
mov dword [esp + 0x14], ebx
mov dword [esp + 0x18], edx
mov dword [esp + 0x24], ecx
mov byte [esp + 0x2b], 1
mov dword [esp + 0x2c], ebp
cmp ebp, ebx
jl 0x47a776
mov ebx, dword [esp + 0x78]
jmp 0x47a0b0
mov ecx, dword [ebx + 8]
mov eax, ebp
shr eax, 5
cmp eax, ecx
jb 0x47a0f8
xor cl, cl
jmp 0x47a10e
push 1
lea eax, [esp + 0x58]
push eax
lea ecx, [esp + 0xb0]
mov dword [esp + 0x5c], str.bad_allocation
call fcn.004a92e7
push 0x514f9c
lea ecx, [esp + 0xac]
push ecx
mov dword [esp + 0xb0], vtable.std::bad_alloc.0
call fcn.004aba66
mov esi, dword [ebx + 0xc]
mov edx, dword [esi + eax*4]
mov ecx, ebp
and ecx, 0x1f
shr edx, cl
and dl, 1
mov cl, dl
mov edx, dword [esp + 0x18]
mov esi, dword [esp + 0x14]
movzx ecx, cl
lea ecx, [ecx + esi*2]
mov esi, dword [esp + 0x4c]
mov dword [esp + 0x14], ecx
cmp eax, dword [esi + 8]
jb 0x47a129
xor al, al
jmp 0x47a140
mov edx, dword [esi + 0xc]
mov eax, dword [edx + eax*4]
mov edx, dword [esp + 0x18]
mov ecx, ebp
and ecx, 0x1f
shr eax, cl
mov ecx, dword [esp + 0x14]
and al, 1
movzx eax, al
lea edx, [eax + edx*2]
mov dword [esp + 0x18], edx
test ebp, ebp
je 0x47a164
mov eax, dword [esp + 0x48]
lea esi, [ecx + ecx]
cmp esi, eax
jae 0x47a164
lea esi, [edx + edx]
cmp esi, eax
jb 0x47a76b
mov esi, dword [esp + 0x24]
sub esi, ebp
xor ebx, ebx
mov dword [esp + 0x24], ebp
test ecx, ecx
jne 0x47a178
test edx, edx
je 0x47a18a
test cl, 1
jne 0x47a18a
test dl, 1
jne 0x47a18a
shr ecx, 1
shr edx, 1
dec esi
inc ebx
jmp 0x47a170
cmp byte [esp + 0x2b], 0
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x18], edx
mov dword [esp + 0x14], ecx
je 0x47a371
mov ecx, dword [esp + 0x5c]
shl edx, cl
add edx, dword [esp + 0x14]
mov eax, edx
mov edx, dword [esp + 0x7c]
lea ecx, [eax + eax*4]
lea ebx, [edx + ecx*4]
lea eax, [esp + 0x34]
cmp eax, ebx
je 0x47a363
mov eax, dword [ebx + 8]
cmp dword [esp + 0x3c], eax
jne 0x47a1dd
mov ecx, dword [ebx + 0xc]
mov edx, eax
shr edx, 1
cmp dword [ecx + edx*4], 0
jne 0x47a339
mov ecx, dword [ebx + 0xc]
test eax, eax
je 0x47a1f3
lea ecx, [ecx + eax*4 - 4]
cmp dword [ecx], 0
jne 0x47a1f3
sub ecx, 4
dec eax
jne 0x47a1e8
cmp eax, 8
ja 0x47a201
mov ebp, dword [eax*4 + 0x4e1a34]
jmp 0x47a25c
cmp eax, 0x10
ja 0x47a20d
mov ebp, 0x10
jmp 0x47a25c
cmp eax, 0x20
ja 0x47a219
mov ebp, 0x20
jmp 0x47a25c
cmp eax, 0x40
ja 0x47a225
mov ebp, 0x40
jmp 0x47a25c
lea esi, [eax - 1]
test esi, esi
jne 0x47a230
xor eax, eax
jmp 0x47a253
xor edx, edx
mov eax, 0x20
lea ecx, [eax + edx]
shr ecx, 1
mov ebp, esi
shr ebp, cl
test ebp, ebp
je 0x47a248
mov edx, ecx
jmp 0x47a24a
mov eax, ecx
mov ecx, eax
sub ecx, edx
cmp ecx, 1
ja 0x47a237
mov ebp, 1
mov ecx, eax
shl ebp, cl
mov eax, dword [esp + 0x40]
mov esi, eax
cmp dword [esp + 0x3c], ebp
je 0x47a32d
mov ecx, dword [esp + 0x3c]
mov edx, ecx
add edx, edx
mov edi, eax
xor eax, eax
add edx, edx
rep stosd dword es:[edi], eax
push esi
cmp edx, 0x10
jb 0x47a289
call fcn.004aba07
jmp 0x47a28e
call fcn.004a98d1
add esp, 4
cmp ebp, 0x3fffffff
jbe 0x47a29e
call fcn.0046eae0
test ebp, ebp
jne 0x47a2a9
xor eax, eax
jmp 0x47a329
lea edi, [ebp*4]
cmp edi, 0x10
jb 0x47a2f1
push 0x10
push edi
call fcn.004aba21
add esp, 8
test eax, eax
jne 0x47a329
push 0
call fcn.00499269
mov esi, eax
add esp, 4
test esi, esi
je 0x47a7b8
push esi
call fcn.00499269
call esi
push 0x10
push edi
call fcn.004aba21
add esp, 0xc
test eax, eax
je 0x47a2c4
jmp 0x47a329
push edi
call fcn.004a990b
add esp, 4
test eax, eax
jne 0x47a329
mov edi, edi
push 0
call fcn.00499269
mov esi, eax
add esp, 4
test esi, esi
je 0x47a7f0
push esi
call fcn.00499269
call esi
push edi
call fcn.004a990b
add esp, 8
test eax, eax
je 0x47a300
mov edi, dword [esp + 0x20]
mov dword [esp + 0x3c], ebp
mov ebp, dword [esp + 0x2c]
mov dword [esp + 0x40], eax
mov eax, dword [ebx + 0xc]
cmp dword [esp + 0x40], eax
je 0x47a35c
mov ecx, dword [esp + 0x3c]
lea edx, [ecx*4]
push edx
push eax
mov eax, dword [esp + 0x48]
push eax
call fcn.004abff0
add esp, 0xc
mov ecx, dword [ebx + 0x10]
mov dword [esp + 0x44], ecx
mov ebx, dword [esp + 0x1c]
mov byte [esp + 0x2b], 0
jmp 0x47a585
test esi, esi
je 0x47a550
lea esp, [esp]
mov edx, dword [edi]
mov edx, dword [edx + 0x18]
lea eax, [esp + 0x34]
dec esi
push eax
mov ecx, edi
mov dword [esp + 0x68], esi
call edx
mov ebx, eax
lea eax, [esp + 0x34]
cmp eax, ebx
je 0x47a544
mov eax, dword [ebx + 8]
cmp dword [esp + 0x3c], eax
jne 0x47a3bb
mov ecx, dword [ebx + 0xc]
mov edx, eax
shr edx, 1
cmp dword [ecx + edx*4], 0
jne 0x47a51f
mov ecx, dword [ebx + 0xc]
test eax, eax
je 0x47a3d1
lea ecx, [ecx + eax*4 - 4]
cmp dword [ecx], 0
jne 0x47a3d1
sub ecx, 4
dec eax
jne 0x47a3c6
cmp eax, 8
ja 0x47a3df
mov ebp, dword [eax*4 + 0x4e1a34]
jmp 0x47a43a
cmp eax, 0x10
ja 0x47a3eb
mov ebp, 0x10
jmp 0x47a43a
cmp eax, 0x20
ja 0x47a3f7
mov ebp, 0x20
jmp 0x47a43a
cmp eax, 0x40
ja 0x47a403
mov ebp, 0x40
jmp 0x47a43a
lea esi, [eax - 1]
test esi, esi
jne 0x47a40e
xor eax, eax
jmp 0x47a431
xor edx, edx
mov eax, 0x20
lea ecx, [eax + edx]
shr ecx, 1
mov edi, esi
shr edi, cl
test edi, edi
je 0x47a426
mov edx, ecx
jmp 0x47a428
mov eax, ecx
mov ecx, eax
sub ecx, edx
cmp ecx, 1
ja 0x47a415
mov ebp, 1
mov ecx, eax
shl ebp, cl
mov ecx, dword [esp + 0x3c]
mov edi, dword [esp + 0x40]
mov esi, edi
cmp ecx, ebp
je 0x47a50b
mov edx, ecx
add edx, edx
xor eax, eax
add edx, edx
rep stosd dword es:[edi], eax
push esi
cmp edx, 0x10
jb 0x47a463
call fcn.004aba07
jmp 0x47a468
call fcn.004a98d1
add esp, 4
cmp ebp, 0x3fffffff
jbe 0x47a478
call fcn.0046eae0
test ebp, ebp
jne 0x47a483
xor eax, eax
jmp 0x47a509
lea edi, [ebp*4]
cmp edi, 0x10
jb 0x47a4cd
push 0x10
push edi
call fcn.004aba21
add esp, 8
test eax, eax
jne 0x47a509
mov edi, edi
push 0
call fcn.00499269
mov esi, eax
add esp, 4
test esi, esi
je 0x47a81f
push esi
call fcn.00499269
call esi
push 0x10
push edi
call fcn.004aba21
add esp, 0xc
test eax, eax
je 0x47a4a0
jmp 0x47a509
push edi
call fcn.004a990b
add esp, 4
test eax, eax
jne 0x47a509
lea ebx, [ebx]
push 0
call fcn.00499269
mov esi, eax
add esp, 4
test esi, esi
je 0x47a84e
push esi
call fcn.00499269
call esi
push edi
call fcn.004a990b
add esp, 8
test eax, eax
je 0x47a4e0
mov edi, eax
mov esi, dword [esp + 0x64]
mov dword [esp + 0x40], edi
mov edi, dword [esp + 0x20]
mov dword [esp + 0x3c], ebp
mov ebp, dword [esp + 0x2c]
mov eax, dword [ebx + 0xc]
mov ecx, dword [esp + 0x40]
cmp ecx, eax
je 0x47a53d
mov edx, dword [esp + 0x3c]
add edx, edx
add edx, edx
push edx
push eax
push ecx
call fcn.004abff0
add esp, 0xc
mov eax, dword [ebx + 0x10]
mov dword [esp + 0x44], eax
test esi, esi
jne 0x47a380
mov ebx, dword [esp + 0x1c]
cmp dword [esp + 0x14], 0
jne 0x47a55e
cmp dword [esp + 0x18], 0
je 0x47a585
mov ecx, dword [esp + 0x5c]
mov eax, dword [esp + 0x18]
mov edx, dword [edi]
mov edx, dword [edx + 0x20]
shl eax, cl
mov ecx, dword [esp + 0x7c]
add eax, dword [esp + 0x14]
lea eax, [eax + eax*4]
lea eax, [ecx + eax*4]
push eax
lea ecx, [esp + 0x38]
push ecx
mov ecx, edi
call edx
test ebx, ebx
je 0x47a75b
lea ecx, [ecx]
mov eax, dword [edi]
mov edx, dword [eax + 0x18]
dec dword [esp + 0x1c]
lea ecx, [esp + 0x34]
push ecx
mov ecx, edi
call edx
mov ebx, eax
lea eax, [esp + 0x34]
cmp eax, ebx
je 0x47a750
mov eax, dword [ebx + 8]
cmp dword [esp + 0x3c], eax
jne 0x47a5ca
mov ecx, dword [ebx + 0xc]
mov edx, eax
shr edx, 1
cmp dword [ecx + edx*4], 0
jne 0x47a72b
mov ecx, dword [ebx + 0xc]
test eax, eax
je 0x47a5e0
lea ecx, [ecx + eax*4 - 4]
cmp dword [ecx], 0
jne 0x47a5e0
sub ecx, 4
dec eax
jne 0x47a5d5
cmp eax, 8
ja 0x47a5ee
mov ebp, dword [eax*4 + 0x4e1a34]
jmp 0x47a649
cmp eax, 0x10
ja 0x47a5fa
mov ebp, 0x10
jmp 0x47a649
cmp eax, 0x20
ja 0x47a606
mov ebp, 0x20
jmp 0x47a649
cmp eax, 0x40
ja 0x47a612
mov ebp, 0x40
jmp 0x47a649
lea esi, [eax - 1]
test esi, esi
jne 0x47a61d
xor eax, eax
jmp 0x47a640
xor edx, edx
mov eax, 0x20
lea ecx, [eax + edx]
shr ecx, 1
mov edi, esi
shr edi, cl
test edi, edi
je 0x47a635
mov edx, ecx
jmp 0x47a637
mov eax, ecx
mov ecx, eax
sub ecx, edx
cmp ecx, 1
ja 0x47a624
mov ebp, 1
mov ecx, eax
shl ebp, cl
mov ecx, dword [esp + 0x3c]
mov edi, dword [esp + 0x40]
mov esi, edi
cmp ecx, ebp
je 0x47a71b
mov edx, ecx
add edx, edx
xor eax, eax
add edx, edx
rep stosd dword es:[edi], eax
push esi
cmp edx, 0x10
jb 0x47a672
call fcn.004aba07
jmp 0x47a677
call fcn.004a98d1
add esp, 4
cmp ebp, 0x3fffffff
jbe 0x47a687
call fcn.0046eae0
test ebp, ebp
jne 0x47a692
xor eax, eax
jmp 0x47a719
lea edi, [ebp*4]
cmp edi, 0x10
jb 0x47a6dd
push 0x10
push edi
call fcn.004aba21
add esp, 8
test eax, eax
jne 0x47a719
lea ecx, [ecx]
push 0
call fcn.00499269
mov esi, eax
add esp, 4
test esi, esi
je 0x47a886
push esi
call fcn.00499269
call esi
push 0x10
push edi
call fcn.004aba21
add esp, 0xc
test eax, eax
je 0x47a6b0
jmp 0x47a719
push edi
call fcn.004a990b
add esp, 4
test eax, eax
jne 0x47a719
lea ebx, [ebx]
push 0
call fcn.00499269
mov esi, eax
add esp, 4
test esi, esi
je 0x47a8be
push esi
call fcn.00499269
call esi
push edi
call fcn.004a990b
add esp, 8
test eax, eax
je 0x47a6f0
mov edi, eax
mov dword [esp + 0x40], edi
mov edi, dword [esp + 0x20]
mov dword [esp + 0x3c], ebp
mov ebp, dword [esp + 0x2c]
mov eax, dword [ebx + 0xc]
mov ecx, dword [esp + 0x40]
cmp ecx, eax
je 0x47a749
mov edx, dword [esp + 0x3c]
add edx, edx
add edx, edx
push edx
push eax
push ecx
call fcn.004abff0
add esp, 0xc
mov eax, dword [ebx + 0x10]
mov dword [esp + 0x44], eax
cmp dword [esp + 0x1c], 0
jne 0x47a590
mov ebx, dword [esp + 0x78]
xor eax, eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x14], eax
mov edx, eax
dec ebp
mov dword [esp + 0x2c], ebp
jns 0x47a0b0
mov ebx, dword [esp + 0x68]
lea ecx, [esp + 0x34]
push ecx
push ebx
call fcn.0046ae30
mov ecx, dword [esp + 0x3c]
mov edi, dword [esp + 0x40]
mov edx, ecx
add edx, edx
mov esi, edi
xor eax, eax
add edx, edx
mov dword [esp + 0x8c], 1
rep stosd dword es:[edi], eax
push esi
cmp edx, 0x10
jb 0x47a8ed
call fcn.004aba07
jmp 0x47a8f2
push 1
lea ecx, [esp + 0x64]
push ecx
lea ecx, [esp + 0x98]
mov dword [esp + 0x68], str.bad_allocation
call fcn.004a92e7
push 0x514f9c
lea edx, [esp + 0x94]
push edx
mov dword [esp + 0x98], vtable.std::bad_alloc.0
call fcn.004aba66
push 1
lea eax, [esp + 0x50]
push eax
lea ecx, [esp + 0x74]
mov dword [esp + 0x54], str.bad_allocation
call fcn.004a92e7
push 0x514f9c
lea ecx, [esp + 0x70]
push ecx
mov dword [esp + 0x74], vtable.std::bad_alloc.0
call fcn.004aba66
push 1
lea edx, [esp + 0x5c]
push edx
lea ecx, [esp + 0x74]
mov dword [esp + 0x60], str.bad_allocation
call fcn.004a92e7
push 0x514f9c
lea eax, [esp + 0x70]
push eax
mov dword [esp + 0x74], vtable.std::bad_alloc.0
call fcn.004aba66
push 1
lea ecx, [esp + 0x50]
push ecx
lea ecx, [esp + 0x98]
mov dword [esp + 0x54], str.bad_allocation
call fcn.004a92e7
push 0x514f9c
lea edx, [esp + 0x94]
push edx
mov dword [esp + 0x98], vtable.std::bad_alloc.0
call fcn.004aba66
push 1
lea eax, [esp + 0x34]
push eax
lea ecx, [esp + 0xa4]
mov dword [esp + 0x38], str.bad_allocation
call fcn.004a92e7
push 0x514f9c
lea ecx, [esp + 0xa0]
push ecx
mov dword [esp + 0xa4], vtable.std::bad_alloc.0
call fcn.004aba66
push 1
lea edx, [esp + 0x50]
push edx
lea ecx, [esp + 0x74]
mov dword [esp + 0x54], str.bad_allocation
call fcn.004a92e7
push 0x514f9c
lea eax, [esp + 0x70]
push eax
mov dword [esp + 0x74], vtable.std::bad_alloc.0
call fcn.004aba66
call fcn.004a98d1
add esp, 4
lea eax, [esp + 0x7c]
push eax
mov byte [esp + 0xc8], 0
call fcn.00479a80
mov eax, ebx
mov ecx, dword [esp + 0xbc]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebp
pop ebx
mov ecx, dword [esp + 0xa0]
xor ecx, esp
call fcn.004a91d2
add esp, 0xb4
ret 0x14