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

Disassembly:
mov edi, edi
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0xa4
mov eax, dword [0x475280]
xor eax, esp
mov dword [esp + 0xa0], eax
push ebx
push esi
mov esi, dword [ebp + 8]
mov eax, ecx
push edi
mov edi, edx
mov dword [esp + 0xc], eax
mov edx, dword [ebp + 0xc]
mov ebx, edx
mov dword [esp + 0x4c], edx
mov dword [esp + 0x38], 0
mov dword [esp + 0x14], ebx
test edi, edi
je 0x454874
test edx, edx
je 0x454874
mov ecx, dword [ebp + 0x10]
test ecx, ecx
jne 0x453f25
neg esi
sbb esi, esi
and esi, 0x25d
jmp 0x454879
cmp ecx, 0x4000000
jbe 0x453f37
mov esi, 0x25d
jmp 0x454879
cmp esi, ecx
ja 0x453f2d
jne 0x453f51
push esi
push edi
push ecx
push edx
call dword [sym.imp.msvcrt.dll_memcpy_s]
add esp, 0x10
xor esi, esi
jmp 0x454879
lea ecx, [eax + 0x40000]
mov dword [esp + 0x30], ecx
cmp esi, 4
jb 0x453f2d
mov dword [ecx + 8], edi
lea eax, [edi + esi]
mov dword [ecx + 0x10], eax
lea edx, [edi + 2]
mov dword [ecx + 0xc], edi
mov dword [ecx], 0xffffffff
movzx eax, word [edi]
mov dword [ecx + 8], edx
mov ecx, eax
mov eax, dword [esp + 0x30]
shl ecx, 0x10
mov dword [eax + 4], ecx
movzx eax, word [edx]
or eax, ecx
mov ecx, dword [esp + 0x30]
mov dword [ecx + 4], eax
lea eax, [edx + 2]
mov dword [ecx + 8], eax
mov eax, dword [esp + 0xc]
add eax, 0x40014
mov dword [esp + 0x1c], eax
lea eax, [edi + esi]
cmp edi, eax
jae 0x453fef
cmp esi, 4
jl 0x453fef
mov esi, dword [esp + 0x1c]
mov dword [esi + 0x10], eax
add eax, 0xfffffffe
mov dword [esi + 0xc], eax
mov dword [esi], 0
mov dword [esi + 0x14], edi
movzx ecx, word [eax]
lea edx, [eax - 2]
shl ecx, 0x10
mov dword [esi + 0xc], edx
mov dword [esi + 8], ecx
movzx eax, word [edx]
add eax, ecx
mov dword [esi], 0x10
mov dword [esi + 8], eax
lea eax, [edx - 2]
mov dword [esi + 0xc], eax
xor esi, esi
jmp 0x453ff4
mov esi, 0x25d
test esi, esi
jne 0x454879
mov esi, dword [esp + 0xc]
push 0x9c34
push 0
lea eax, [esi + 0x4043c]
push eax
call sub.msvcrt.dll_memset
mov eax, 1
mov dword [esi + 0x40030], 0x100
mov dword [esi + 0x40038], 0x400
lea edi, [esi + 0x4003c]
mov dword [esi + 0x40034], 0
mov ecx, 0x100
add esp, 0xc
rep stosd dword es:[edi], eax
lea ecx, [esi + 0x40030]
call fcn.00454de9
mov eax, dword [ebp + 0x10]
mov esi, 1
cmp eax, 2
jbe 0x45406a
mov edi, edi
inc esi
cmp dword [esi*4 + 0x409f10], eax
jb 0x454060
mov edi, dword [esp + 0xc]
mov ecx, 0x10
lea eax, [edi + 0x721a0]
lea esp, [esp]
mov dword [eax + 8], 0x55555555
lea eax, [eax + 0x10]
mov dword [eax - 4], 0
mov dword [eax - 0x10], 0x30
sub ecx, 1
jne 0x454080
lea eax, [edi + 0x722a0]
mov ecx, 0x20
jmp 0x4540b0
mov dword [eax + 8], 0x55555555
lea eax, [eax + 0x10]
mov dword [eax - 4], 0
mov dword [eax - 0x10], 0x30
sub ecx, 1
jne 0x4540b0
lea eax, [edi + 0x724a0]
lea edx, [ecx + 3]
jmp 0x4540e0
mov ecx, 0x40
jmp 0x4540f0
mov dword [eax + 8], 0x55555555
mov dword [eax + 0xc], 0
mov dword [eax], 0x30
add eax, 0x10
sub ecx, 1
jne 0x4540f0
sub edx, 1
jne 0x4540e0
lea eax, [edi + 0x730a0]
lea edx, [ecx + 3]
lea ebx, [ebx]
mov ecx, 0x40
jmp 0x454130
mov dword [eax + 8], 0x55555555
mov dword [eax + 0xc], 0
mov dword [eax], 0x30
add eax, 0x10
sub ecx, 1
jne 0x454130
sub edx, 1
jne 0x454120
lea eax, [edi + 0x4a070]
push 0xa048
mov dword [esp + 0x54], eax
lea eax, [edi + 0x4a074]
push edx
push eax
call sub.msvcrt.dll_memset
lea ecx, [edi + 0x4a070]
add esp, 0xc
lea eax, [edi + 0x40014]
mov dword [ecx], 0x409f10
mov dword [ecx + 8], eax
lea edx, [ecx + 0xc]
mov dword [ecx + 4], esi
lea eax, [esi*4]
mov dword [edx], esi
mov dword [ecx + 0x14], 0x400
mov dword [ecx + 0x10], 0
mov dword [esp + 0x10], eax
test esi, esi
je 0x4541bf
lea edi, [ecx + 0x18]
mov ecx, eax
shr ecx, 2
mov eax, 1
rep stosd dword es:[edi], eax
mov edi, dword [esp + 0xc]
jmp 0x4541c3
mov dword [esp + 0x10], eax
mov ecx, edx
call fcn.00454de9
lea eax, [edi + 0x540bc]
push 0xa048
mov dword [esp + 0x40], eax
lea eax, [edi + 0x540c0]
push 0
push eax
call sub.msvcrt.dll_memset
lea ecx, [edi + 0x540bc]
add esp, 0xc
lea eax, [edi + 0x40014]
mov dword [ecx], 0x40abb8
mov dword [ecx + 8], eax
lea edx, [ecx + 0xc]
mov dword [ecx + 4], 0x36
lea edi, [ecx + 0x18]
mov dword [ecx + 0x14], 0x200
mov eax, 1
mov dword [ecx + 0x10], 0
mov ecx, 0x36
mov dword [edx], 0x36
rep stosd dword es:[edi], eax
mov ecx, edx
call fcn.00454de9
mov eax, dword [esp + 0xc]
push 0xa048
push 0
lea edi, [eax + 0x5e108]
add eax, 0x5e10c
push eax
mov dword [esp + 0x64], edi
call sub.msvcrt.dll_memset
mov eax, dword [esp + 0x28]
lea edx, [edi + 0xc]
add esp, 0xc
mov dword [edi + 8], eax
mov dword [edi], 0x409f10
mov dword [edi + 4], esi
mov dword [edx], esi
mov dword [edi + 0x14], 0x400
mov dword [edi + 0x10], 0
test esi, esi
je 0x45428e
mov ecx, dword [esp + 0x10]
add edi, 0x18
shr ecx, 2
mov eax, 1
rep stosd dword es:[edi], eax
mov ecx, edx
call fcn.00454de9
mov esi, dword [esp + 0xc]
push 0xa048
push 0
lea eax, [esi + 0x68158]
lea edi, [esi + 0x68154]
push eax
mov dword [esp + 0x60], edi
call sub.msvcrt.dll_memset
mov dword [edi], 0x40ab90
lea eax, [esi + 0x40014]
mov dword [edi + 8], eax
lea ecx, [edi + 0xc]
mov dword [edi + 4], 8
add esp, 0xc
mov dword [ecx], 8
mov dword [edi + 0x14], 0x200
mov dword [edi + 0x10], 0
mov dword [edi + 0x18], 1
mov dword [edi + 0x1c], 1
mov dword [edi + 0x20], 1
mov dword [edi + 0x24], 1
mov dword [edi + 0x28], 1
mov dword [edi + 0x2c], 1
mov dword [edi + 0x30], 1
mov dword [edi + 0x34], 1
call fcn.00454de9
mov ecx, dword [ebp + 0x10]
xor eax, eax
xor edx, edx
mov dword [esp + 0x2c], eax
mov dword [esp + 0x18], eax
mov dword [esp + 0x28], eax
mov dword [esp + 0x64], 1
mov dword [esp + 0x74], eax
mov dword [esp + 0x78], 1
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], eax
mov dword [esp + 0x68], 2
mov dword [esp + 0x7c], eax
mov dword [esp + 0x80], 2
mov dword [esp + 0x9c], eax
mov dword [esp + 0xa8], eax
mov dword [esp + 0x6c], 3
mov dword [esp + 0x84], eax
mov dword [esp + 0x88], 3
mov dword [esp + 0x70], 4
mov dword [esp + 0x8c], eax
mov dword [esp + 0x90], 4
mov dword [esp + 0x40], eax
mov dword [esp + 0x44], eax
mov dword [esp + 0x48], eax
test ecx, ecx
je 0x454851
mov eax, dword [esp + 0x5c]
mov dword [esp + 0x34], eax
jmp 0x4543d0
and edx, 0xf
lea ecx, [esi + 0x40000]
mov eax, edx
lea edx, [eax + eax]
mov dword [esp + 0x1c], edx
lea edx, [eax + 0x721a]
shl edx, 4
add edx, esi
call fcn.00454a00
test eax, eax
jne 0x454417
lea edx, [esi + 0x40014]
lea ecx, [esi + 0x40030]
call fcn.004552c5
mov byte [ebx], al
xor edi, edi
inc ebx
xor eax, eax
mov dword [esp + 0x14], ebx
jmp 0x4547a5
mov eax, dword [esp + 0x2c]
inc dword [esp + 0x1c]
and eax, 0x1f
lea ecx, [eax + eax]
lea edx, [eax + 0x722a]
mov dword [esp + 0x2c], ecx
shl edx, 4
lea ecx, [esi + 0x40000]
add edx, esi
call fcn.00454a00
test eax, eax
jne 0x454603
mov eax, dword [esp + 0x18]
lea ecx, [esi + 0x40000]
and eax, 0x3f
mov dword [esp + 0x18], eax
lea edx, [eax + 0x724a]
shl edx, 4
add edx, esi
call fcn.00454a00
mov ecx, dword [esp + 0x18]
add ecx, ecx
mov dword [esp + 0x18], ecx
test eax, eax
jne 0x45448a
mov ecx, dword [esp + 0x50]
call fcn.00455550
mov edi, eax
mov dword [esp + 0x10], edi
jmp 0x454553
mov eax, dword [esp + 0x20]
inc ecx
and eax, 0x3f
mov dword [esp + 0x18], ecx
mov dword [esp + 0x94], ecx
mov edi, 1
lea ecx, [esi + 0x40000]
mov dword [esp + 0x20], eax
lea edx, [eax + 0x728a]
shl edx, 4
add edx, esi
call fcn.00454a00
mov ecx, dword [esp + 0x20]
lea ecx, [eax + ecx*2]
mov dword [esp + 0x20], ecx
mov dword [esp + 0x98], ecx
test eax, eax
je 0x454538
mov ebx, 0x40
jmp 0x4544e0
add ebx, 0x40
inc edi
cmp ebx, 0xc0
je 0x45451e
mov esi, dword [esp + edi*4 + 0x94]
lea edx, [ebx + 0x724a]
mov ecx, dword [esp + 0x30]
and esi, 0x3f
add edx, esi
shl edx, 4
add edx, dword [esp + 0xc]
call fcn.00454a00
mov ecx, eax
lea eax, [ecx + esi*2]
mov dword [esp + edi*4 + 0x94], eax
test ecx, ecx
jne 0x4544e0
mov eax, dword [esp + 0x98]
mov ebx, dword [esp + 0x14]
mov dword [esp + 0x20], eax
mov eax, dword [esp + 0x94]
mov dword [esp + 0x18], eax
mov eax, dword [esp + edi*4 + 0x60]
dec edi
mov dword [esp + 0x10], eax
mov eax, dword [esp + edi*4 + 0x68]
mov dword [esp + edi*4 + 0x64], eax
inc edi
cmp edi, 3
jb 0x454541
mov edi, dword [esp + 0x10]
mov ecx, dword [esp + 0x3c]
call fcn.00455550
mov edx, eax
mov eax, dword [esp + 0x38]
cmp edi, eax
ja 0x453f2d
mov ecx, dword [ebp + 0x10]
mov esi, ebx
sub ecx, eax
sub esi, edi
lea eax, [edx + 0xc]
cmp eax, ecx
jae 0x4545e4
cmp edi, 4
jae 0x4545c6
mov eax, edi
sub eax, 1
je 0x4545a1
sub eax, 1
movzx eax, byte [esi]
mov byte [ebx], al
movzx eax, byte [esi + 1]
mov byte [ebx + 1], al
jne 0x4545ad
mov eax, 2
lea ecx, [eax - 4]
jmp 0x4545be
movzx eax, byte [esi]
mov byte [ebx], al
movzx eax, byte [esi + 1]
mov byte [ebx + 1], al
movzx eax, byte [esi + 2]
mov ecx, 0xfffffffd
mov byte [ebx + 2], al
mov eax, 3
add edx, ecx
add ebx, eax
test edx, edx
jle 0x4545f6
sub esi, ebx
mov eax, dword [esi + ebx]
sub edx, 4
mov dword [ebx], eax
add ebx, 4
test edx, edx
jg 0x4545c8
add ebx, edx
mov dword [esp + 0x14], ebx
xor eax, eax
jmp 0x4547a1
cmp edx, ecx
ja 0x453f2d
mov edi, ebx
mov ecx, edx
rep movsb byte es:[edi], byte [esi]
mov edi, dword [esp + 0x10]
add ebx, edx
mov dword [esp + 0x14], ebx
xor eax, eax
jmp 0x4547a1
mov eax, dword [esp + 0x28]
inc dword [esp + 0x2c]
and eax, 0x3f
lea ecx, [eax + eax]
lea edx, [eax + 0x730a]
mov dword [esp + 0x28], ecx
shl edx, 4
lea ecx, [esi + 0x40000]
add edx, esi
call fcn.00454a00
test eax, eax
jne 0x45464e
mov ecx, dword [esp + 0x54]
call fcn.00455550
mov ecx, dword [esp + 0x58]
mov dword [esp + 0x34], eax
call fcn.00455550
mov dword [esp + 0x10], eax
jmp 0x454729
mov eax, dword [esp + 0x28]
lea ecx, [esi + 0x40000]
inc eax
mov edi, 1
mov dword [esp + 0x28], eax
mov dword [esp + 0xa0], eax
mov eax, dword [esp + 0x24]
and eax, 0x3f
mov dword [esp + 0x24], eax
lea edx, [eax + 0x734a]
shl edx, 4
add edx, esi
call fcn.00454a00
mov ecx, dword [esp + 0x24]
lea ecx, [eax + ecx*2]
mov dword [esp + 0x24], ecx
mov dword [esp + 0xa4], ecx
test eax, eax
je 0x4546f8
mov ebx, 0x40
nop
add ebx, 0x40
inc edi
cmp ebx, 0xc0
jae 0x4546de
mov esi, dword [esp + edi*4 + 0xa0]
mov ecx, dword [esp + 0x30]
and esi, 0x3f
lea edx, [esi + 0x730a]
add edx, ebx
shl edx, 4
add edx, dword [esp + 0xc]
call fcn.00454a00
mov ecx, eax
lea eax, [ecx + esi*2]
mov dword [esp + edi*4 + 0xa0], eax
test ecx, ecx
jne 0x4546a0
mov eax, dword [esp + 0xa4]
mov ebx, dword [esp + 0x14]
mov dword [esp + 0x24], eax
mov eax, dword [esp + 0xa0]
mov dword [esp + 0x28], eax
mov eax, dword [esp + edi*8 + 0x6c]
dec edi
mov dword [esp + 0x34], eax
mov eax, dword [esp + edi*8 + 0x78]
mov dword [esp + 0x10], eax
lea esp, [esp]
mov eax, dword [esp + edi*8 + 0x7c]
mov dword [esp + edi*8 + 0x74], eax
mov eax, dword [esp + edi*8 + 0x80]
mov dword [esp + edi*8 + 0x78], eax
inc edi
cmp edi, 3
jb 0x454710
mov ecx, dword [esp + 0x3c]
call fcn.00455550
mov ecx, dword [esp + 0x34]
mov esi, eax
mov edx, dword [esp + 0x10]
mov edi, 1
mov eax, dword [ebp + 0x10]
shl edx, cl
shl edi, cl
mov ecx, dword [esp + 0x38]
sub eax, ecx
mov dword [esp + 0x5c], edx
cmp esi, eax
ja 0x453f2d
lea eax, [edx + edi]
cmp eax, ecx
ja 0x453f2d
test esi, esi
jle 0x45479b
mov edx, ebx
mov ecx, ebx
sub edx, dword [esp + 0x5c]
sub ecx, edi
sub edx, edi
sub edi, dword [esp + 0x5c]
lea esp, [esp]
mov al, byte [ecx + edi]
lea edx, [edx + 1]
sub al, byte [edx - 1]
lea ecx, [ecx + 1]
add al, byte [ecx - 1]
mov byte [ebx], al
inc ebx
sub esi, 1
jne 0x454780
mov dword [esp + 0x14], ebx
mov eax, dword [esp + 0x10]
xor edi, edi
mov esi, dword [esp + 0xc]
mov edx, dword [esp + 0x40]
test edx, edx
je 0x4547c9
mov ecx, dword [esp + 0x6c]
mov dword [esp + 0x70], ecx
mov ecx, dword [esp + 0x68]
mov dword [esp + 0x6c], ecx
mov ecx, dword [esp + 0x64]
mov dword [esp + 0x68], ecx
mov dword [esp + 0x64], edx
mov edx, dword [esp + 0x48]
mov dword [esp + 0x40], edi
test edx, edx
je 0x454829
mov ecx, dword [esp + 0x84]
mov dword [esp + 0x8c], ecx
mov ecx, dword [esp + 0x88]
mov dword [esp + 0x90], ecx
mov ecx, dword [esp + 0x7c]
mov dword [esp + 0x84], ecx
mov ecx, dword [esp + 0x80]
mov dword [esp + 0x88], ecx
mov ecx, dword [esp + 0x74]
mov dword [esp + 0x7c], ecx
mov ecx, dword [esp + 0x78]
mov dword [esp + 0x80], ecx
mov ecx, dword [esp + 0x44]
mov dword [esp + 0x74], ecx
mov dword [esp + 0x78], edx
mov ecx, dword [esp + 0x34]
mov edx, dword [esp + 0x4c]
mov dword [esp + 0x48], eax
mov eax, ebx
sub eax, edx
mov dword [esp + 0x44], ecx
mov ecx, dword [ebp + 0x10]
mov dword [esp + 0x38], eax
cmp eax, ecx
jae 0x454853
mov edx, dword [esp + 0x1c]
jmp 0x4543d0
mov edx, ebx
mov eax, dword [esi + 0x40008]
sub eax, 4
cmp eax, dword [esi + 0x40020]
jae 0x453f2d
push ecx
mov ecx, esi
call fcn.004558c8
xor esi, esi
jmp 0x454879
mov esi, 0x57
mov ecx, dword [esp + 0xac]
mov eax, esi
pop edi
pop esi
pop ebx
xor ecx, esp
call fcn.00471d10
mov esp, ebp
pop ebp
ret 0xc