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

Disassembly:
push 0xffffffffffffffff
push 0x1007342c
mov eax, dword fs:[0]
push eax
sub esp, 0xa8
mov eax, dword [0x1008d200]
xor eax, esp
mov dword [esp + 0xa0], eax
push ebx
push ebp
push esi
push edi
mov eax, dword [0x1008d200]
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 0x100315ec
lea eax, [ecx + eax*4 - 4]
nop
cmp dword [eax], ebp
jne 0x10031645
dec esi
sub eax, 4
cmp esi, ebp
jne 0x100315e0
xor ebx, ebx
mov esi, dword [edi + 8]
mov edi, dword [edi + 0xc]
mov dword [esp + 0x24], ebx
cmp esi, ebp
je 0x1003160c
lea eax, [edi + esi*4 - 4]
cmp dword [eax], ebp
jne 0x1003165c
dec esi
sub eax, 4
cmp esi, ebp
jne 0x10031600
xor eax, eax
mov dword [esp + 0x30], eax
cmp eax, ebx
lea eax, [esp + 0x24]
jb 0x1003161e
lea eax, [esp + 0x30]
mov eax, dword [eax]
mov dword [esp + 0x64], eax
cmp eax, ebp
jne 0x10031671
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.10044850
mov eax, esi
jmp 0x10032239
cmp esi, ebp
je 0x100315ec
lea eax, [ecx + esi*4 - 4]
call fcn.1002da20
lea ebx, [esi - 1]
shl ebx, 5
add ebx, eax
jmp 0x100315ee
cmp esi, ebp
je 0x1003160c
lea eax, [edi + esi*4 - 4]
call fcn.1002da20
dec esi
shl esi, 5
add eax, esi
jmp 0x1003160e
cmp eax, 0x2e
ja 0x10031680
mov dword [esp + 0x5c], 1
jmp 0x10031692
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.10032c30
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.10044aa0
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.10044aa0
cmp dword [esp + 0x5c], 1
mov ecx, dword [esp + 0x20]
jne 0x10031726
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.10044aa0
jmp 0x10031932
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.10044aa0
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.10044aa0
cmp ebx, 3
jbe 0x100317a5
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.10044aa0
add ebp, 0x28
dec dword [esp + 0x24]
jne 0x10031780
mov dword [esp + 0x1c], 1
cmp ebx, 1
jbe 0x1003183b
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 0x1003181d
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.10044aa0
add ebp, dword [esp + 0x48]
add dword [esp + 0x50], esi
add ebx, esi
cmp ebp, dword [esp + 0x18]
jb 0x100317f0
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 0x100317d0
mov ecx, dword [esp + 0x48]
lea esi, [ecx + ecx*2]
cmp esi, dword [esp + 0x18]
jae 0x10031892
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.10044aa0
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 0x10031860
mov ecx, dword [esp + 0x48]
mov edi, dword [esp + 0x20]
mov dword [esp + 0x1c], ecx
cmp ecx, dword [esp + 0x18]
jae 0x10031936
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 0x10031912
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.10044aa0
add ebp, 0x28
dec esi
jne 0x100318f2
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 0x100318d4
mov edi, dword [esp + 0x20]
cmp dword [0x1009879c], 0
jne 0x1003194e
call fcn.100432d0
mov dword [0x1009879c], 0x10038350
push 8
mov dword [esp + 0x38], vtable.CryptoPP::Integer.0
mov dword [esp + 0x40], 2
call fcn.1005d036
xor ebx, ebx
add esp, 4
cmp eax, ebx
jne 0x10031995
mov edi, edi
push ebx
call fcn.1005c4c4
mov esi, eax
add esp, 4
cmp esi, ebx
je 0x100319f0
push esi
call fcn.1005c4c4
call esi
push 8
call fcn.1005d036
add esp, 8
cmp eax, ebx
je 0x10031970
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 0x100320a6
mov ebx, dword [esp + 0x78]
jmp 0x100319e0
mov ecx, dword [ebx + 8]
mov eax, ebp
shr eax, 5
cmp eax, ecx
jb 0x10031a28
xor cl, cl
jmp 0x10031a3e
push 1
lea eax, [esp + 0x58]
push eax
lea ecx, [esp + 0xb0]
mov dword [esp + 0x5c], str.bad_allocation
call fcn.1005c775
push 0x1008692c
lea ecx, [esp + 0xac]
push ecx
mov dword [esp + 0xb0], vtable.std::bad_alloc.0
call fcn.1005dc27
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 0x10031a59
xor al, al
jmp 0x10031a70
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 0x10031a94
mov eax, dword [esp + 0x48]
lea esi, [ecx + ecx]
cmp esi, eax
jae 0x10031a94
lea esi, [edx + edx]
cmp esi, eax
jb 0x1003209b
mov esi, dword [esp + 0x24]
sub esi, ebp
xor ebx, ebx
mov dword [esp + 0x24], ebp
test ecx, ecx
jne 0x10031aa8
test edx, edx
je 0x10031aba
test cl, 1
jne 0x10031aba
test dl, 1
jne 0x10031aba
shr ecx, 1
shr edx, 1
dec esi
inc ebx
jmp 0x10031aa0
cmp byte [esp + 0x2b], 0
mov dword [esp + 0x1c], ebx
mov dword [esp + 0x18], edx
mov dword [esp + 0x14], ecx
je 0x10031ca1
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 0x10031c93
mov eax, dword [ebx + 8]
cmp dword [esp + 0x3c], eax
jne 0x10031b0d
mov ecx, dword [ebx + 0xc]
mov edx, eax
shr edx, 1
cmp dword [ecx + edx*4], 0
jne 0x10031c69
mov ecx, dword [ebx + 0xc]
test eax, eax
je 0x10031b23
lea ecx, [ecx + eax*4 - 4]
cmp dword [ecx], 0
jne 0x10031b23
sub ecx, 4
dec eax
jne 0x10031b18
cmp eax, 8
ja 0x10031b31
mov ebp, dword [eax*4 + 0x10079af0]
jmp 0x10031b8c
cmp eax, 0x10
ja 0x10031b3d
mov ebp, 0x10
jmp 0x10031b8c
cmp eax, 0x20
ja 0x10031b49
mov ebp, 0x20
jmp 0x10031b8c
cmp eax, 0x40
ja 0x10031b55
mov ebp, 0x40
jmp 0x10031b8c
lea esi, [eax - 1]
test esi, esi
jne 0x10031b60
xor eax, eax
jmp 0x10031b83
xor edx, edx
mov eax, 0x20
lea ecx, [eax + edx]
shr ecx, 1
mov ebp, esi
shr ebp, cl
test ebp, ebp
je 0x10031b78
mov edx, ecx
jmp 0x10031b7a
mov eax, ecx
mov ecx, eax
sub ecx, edx
cmp ecx, 1
ja 0x10031b67
mov ebp, 1
mov ecx, eax
shl ebp, cl
mov eax, dword [esp + 0x40]
mov esi, eax
cmp dword [esp + 0x3c], ebp
je 0x10031c5d
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 0x10031bb9
call fcn.1005d890
jmp 0x10031bbe
call fcn.1005cffc
add esp, 4
cmp ebp, 0x3fffffff
jbe 0x10031bce
call fcn.10030e10
test ebp, ebp
jne 0x10031bd9
xor eax, eax
jmp 0x10031c59
lea edi, [ebp*4]
cmp edi, 0x10
jb 0x10031c21
push 0x10
push edi
call fcn.1005d8aa
add esp, 8
test eax, eax
jne 0x10031c59
push 0
call fcn.1005c4c4
mov esi, eax
add esp, 4
test esi, esi
je 0x100320e8
push esi
call fcn.1005c4c4
call esi
push 0x10
push edi
call fcn.1005d8aa
add esp, 0xc
test eax, eax
je 0x10031bf4
jmp 0x10031c59
push edi
call fcn.1005d036
add esp, 4
test eax, eax
jne 0x10031c59
mov edi, edi
push 0
call fcn.1005c4c4
mov esi, eax
add esp, 4
test esi, esi
je 0x10032120
push esi
call fcn.1005c4c4
call esi
push edi
call fcn.1005d036
add esp, 8
test eax, eax
je 0x10031c30
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 0x10031c8c
mov ecx, dword [esp + 0x3c]
lea edx, [ecx*4]
push edx
push eax
mov eax, dword [esp + 0x48]
push eax
call fcn.1005ea60
add esp, 0xc
mov ecx, dword [ebx + 0x10]
mov dword [esp + 0x44], ecx
mov ebx, dword [esp + 0x1c]
mov byte [esp + 0x2b], 0
jmp 0x10031eb5
test esi, esi
je 0x10031e80
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 0x10031e74
mov eax, dword [ebx + 8]
cmp dword [esp + 0x3c], eax
jne 0x10031ceb
mov ecx, dword [ebx + 0xc]
mov edx, eax
shr edx, 1
cmp dword [ecx + edx*4], 0
jne 0x10031e4f
mov ecx, dword [ebx + 0xc]
test eax, eax
je 0x10031d01
lea ecx, [ecx + eax*4 - 4]
cmp dword [ecx], 0
jne 0x10031d01
sub ecx, 4
dec eax
jne 0x10031cf6
cmp eax, 8
ja 0x10031d0f
mov ebp, dword [eax*4 + 0x10079af0]
jmp 0x10031d6a
cmp eax, 0x10
ja 0x10031d1b
mov ebp, 0x10
jmp 0x10031d6a
cmp eax, 0x20
ja 0x10031d27
mov ebp, 0x20
jmp 0x10031d6a
cmp eax, 0x40
ja 0x10031d33
mov ebp, 0x40
jmp 0x10031d6a
lea esi, [eax - 1]
test esi, esi
jne 0x10031d3e
xor eax, eax
jmp 0x10031d61
xor edx, edx
mov eax, 0x20
lea ecx, [eax + edx]
shr ecx, 1
mov edi, esi
shr edi, cl
test edi, edi
je 0x10031d56
mov edx, ecx
jmp 0x10031d58
mov eax, ecx
mov ecx, eax
sub ecx, edx
cmp ecx, 1
ja 0x10031d45
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 0x10031e3b
mov edx, ecx
add edx, edx
xor eax, eax
add edx, edx
rep stosd dword es:[edi], eax
push esi
cmp edx, 0x10
jb 0x10031d93
call fcn.1005d890
jmp 0x10031d98
call fcn.1005cffc
add esp, 4
cmp ebp, 0x3fffffff
jbe 0x10031da8
call fcn.10030e10
test ebp, ebp
jne 0x10031db3
xor eax, eax
jmp 0x10031e39
lea edi, [ebp*4]
cmp edi, 0x10
jb 0x10031dfd
push 0x10
push edi
call fcn.1005d8aa
add esp, 8
test eax, eax
jne 0x10031e39
mov edi, edi
push 0
call fcn.1005c4c4
mov esi, eax
add esp, 4
test esi, esi
je 0x1003214f
push esi
call fcn.1005c4c4
call esi
push 0x10
push edi
call fcn.1005d8aa
add esp, 0xc
test eax, eax
je 0x10031dd0
jmp 0x10031e39
push edi
call fcn.1005d036
add esp, 4
test eax, eax
jne 0x10031e39
lea ebx, [ebx]
push 0
call fcn.1005c4c4
mov esi, eax
add esp, 4
test esi, esi
je 0x1003217e
push esi
call fcn.1005c4c4
call esi
push edi
call fcn.1005d036
add esp, 8
test eax, eax
je 0x10031e10
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 0x10031e6d
mov edx, dword [esp + 0x3c]
add edx, edx
add edx, edx
push edx
push eax
push ecx
call fcn.1005ea60
add esp, 0xc
mov eax, dword [ebx + 0x10]
mov dword [esp + 0x44], eax
test esi, esi
jne 0x10031cb0
mov ebx, dword [esp + 0x1c]
cmp dword [esp + 0x14], 0
jne 0x10031e8e
cmp dword [esp + 0x18], 0
je 0x10031eb5
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 0x1003208b
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 0x10032080
mov eax, dword [ebx + 8]
cmp dword [esp + 0x3c], eax
jne 0x10031efa
mov ecx, dword [ebx + 0xc]
mov edx, eax
shr edx, 1
cmp dword [ecx + edx*4], 0
jne 0x1003205b
mov ecx, dword [ebx + 0xc]
test eax, eax
je 0x10031f10
lea ecx, [ecx + eax*4 - 4]
cmp dword [ecx], 0
jne 0x10031f10
sub ecx, 4
dec eax
jne 0x10031f05
cmp eax, 8
ja 0x10031f1e
mov ebp, dword [eax*4 + 0x10079af0]
jmp 0x10031f79
cmp eax, 0x10
ja 0x10031f2a
mov ebp, 0x10
jmp 0x10031f79
cmp eax, 0x20
ja 0x10031f36
mov ebp, 0x20
jmp 0x10031f79
cmp eax, 0x40
ja 0x10031f42
mov ebp, 0x40
jmp 0x10031f79
lea esi, [eax - 1]
test esi, esi
jne 0x10031f4d
xor eax, eax
jmp 0x10031f70
xor edx, edx
mov eax, 0x20
lea ecx, [eax + edx]
shr ecx, 1
mov edi, esi
shr edi, cl
test edi, edi
je 0x10031f65
mov edx, ecx
jmp 0x10031f67
mov eax, ecx
mov ecx, eax
sub ecx, edx
cmp ecx, 1
ja 0x10031f54
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 0x1003204b
mov edx, ecx
add edx, edx
xor eax, eax
add edx, edx
rep stosd dword es:[edi], eax
push esi
cmp edx, 0x10
jb 0x10031fa2
call fcn.1005d890
jmp 0x10031fa7
call fcn.1005cffc
add esp, 4
cmp ebp, 0x3fffffff
jbe 0x10031fb7
call fcn.10030e10
test ebp, ebp
jne 0x10031fc2
xor eax, eax
jmp 0x10032049
lea edi, [ebp*4]
cmp edi, 0x10
jb 0x1003200d
push 0x10
push edi
call fcn.1005d8aa
add esp, 8
test eax, eax
jne 0x10032049
lea ecx, [ecx]
push 0
call fcn.1005c4c4
mov esi, eax
add esp, 4
test esi, esi
je 0x100321b6
push esi
call fcn.1005c4c4
call esi
push 0x10
push edi
call fcn.1005d8aa
add esp, 0xc
test eax, eax
je 0x10031fe0
jmp 0x10032049
push edi
call fcn.1005d036
add esp, 4
test eax, eax
jne 0x10032049
lea ebx, [ebx]
push 0
call fcn.1005c4c4
mov esi, eax
add esp, 4
test esi, esi
je 0x100321ee
push esi
call fcn.1005c4c4
call esi
push edi
call fcn.1005d036
add esp, 8
test eax, eax
je 0x10032020
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 0x10032079
mov edx, dword [esp + 0x3c]
add edx, edx
add edx, edx
push edx
push eax
push ecx
call fcn.1005ea60
add esp, 0xc
mov eax, dword [ebx + 0x10]
mov dword [esp + 0x44], eax
cmp dword [esp + 0x1c], 0
jne 0x10031ec0
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 0x100319e0
mov ebx, dword [esp + 0x68]
lea ecx, [esp + 0x34]
push ecx
push ebx
call fcn.10044850
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 0x1003221d
call fcn.1005d890
jmp 0x10032222
push 1
lea ecx, [esp + 0x64]
push ecx
lea ecx, [esp + 0x98]
mov dword [esp + 0x68], str.bad_allocation
call fcn.1005c775
push 0x1008692c
lea edx, [esp + 0x94]
push edx
mov dword [esp + 0x98], vtable.std::bad_alloc.0
call fcn.1005dc27
push 1
lea eax, [esp + 0x50]
push eax
lea ecx, [esp + 0x74]
mov dword [esp + 0x54], str.bad_allocation
call fcn.1005c775
push 0x1008692c
lea ecx, [esp + 0x70]
push ecx
mov dword [esp + 0x74], vtable.std::bad_alloc.0
call fcn.1005dc27
push 1
lea edx, [esp + 0x5c]
push edx
lea ecx, [esp + 0x74]
mov dword [esp + 0x60], str.bad_allocation
call fcn.1005c775
push 0x1008692c
lea eax, [esp + 0x70]
push eax
mov dword [esp + 0x74], vtable.std::bad_alloc.0
call fcn.1005dc27
push 1
lea ecx, [esp + 0x50]
push ecx
lea ecx, [esp + 0x98]
mov dword [esp + 0x54], str.bad_allocation
call fcn.1005c775
push 0x1008692c
lea edx, [esp + 0x94]
push edx
mov dword [esp + 0x98], vtable.std::bad_alloc.0
call fcn.1005dc27
push 1
lea eax, [esp + 0x34]
push eax
lea ecx, [esp + 0xa4]
mov dword [esp + 0x38], str.bad_allocation
call fcn.1005c775
push 0x1008692c
lea ecx, [esp + 0xa0]
push ecx
mov dword [esp + 0xa4], vtable.std::bad_alloc.0
call fcn.1005dc27
push 1
lea edx, [esp + 0x50]
push edx
lea ecx, [esp + 0x74]
mov dword [esp + 0x54], str.bad_allocation
call fcn.1005c775
push 0x1008692c
lea eax, [esp + 0x70]
push eax
mov dword [esp + 0x74], vtable.std::bad_alloc.0
call fcn.1005dc27
call fcn.1005cffc
add esp, 4
lea eax, [esp + 0x7c]
push eax
mov byte [esp + 0xc8], 0
call fcn.100310c0
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.1005c755
add esp, 0xb4
ret 0x14