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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x5c
push ebx
push esi
push edi
mov edi, dword [ebp + 0xc]
mov esi, dword [edi + 8]
test esi, esi
mov dword [esp + 0x20], ecx
je 0x4581b1
mov ebx, dword [edi + 0xc]
mov ecx, ebx
sub ecx, esi
mov eax, 0x66666667
imul ecx
sar edx, 3
mov eax, edx
shr eax, 0x1f
add eax, edx
je 0x4581b1
cmp esi, ebx
jbe 0x457ae5
call fcn.004b899b
mov dword [esp + 0x54], esi
lea esp, [esp]
mov ebx, dword [edi + 0xc]
cmp dword [edi + 8], ebx
jbe 0x457afd
call fcn.004b899b
cmp esi, ebx
je 0x457c82
cmp esi, dword [edi + 0xc]
jb 0x457b0f
call fcn.004b899b
push 0
mov ecx, esi
call fcn.004438c0
mov ebx, eax
test dword [ebx + 8], 0x80000000
je 0x457c32
mov esi, dword [ebx + 0x6c]
cmp esi, dword [ebx + 0x70]
jbe 0x457b34
call fcn.004b899b
mov edi, dword [ebx + 0x70]
cmp dword [ebx + 0x6c], edi
jbe 0x457b41
call fcn.004b899b
cmp esi, edi
je 0x457c32
cmp esi, dword [ebx + 0x70]
jb 0x457b53
call fcn.004b899b
mov eax, dword [esi + 4]
test eax, eax
je 0x457c54
mov ecx, dword [esi + 0xc]
test ecx, ecx
jne 0x457b69
xor edx, edx
jmp 0x457b6c
mov edx, dword [ecx + 0x10]
mov eax, dword [esi + 8]
cmp eax, edx
jae 0x457c6b
xor edi, edi
cmp ecx, edi
je 0x457b82
mov ecx, dword [ecx + 0xc]
jmp 0x457b84
xor ecx, ecx
imul eax, ecx
mov ecx, dword [esi + 4]
cmp dword [eax + ecx + 0x40], edi
jne 0x457ba7
cmp esi, dword [ebx + 0x70]
jb 0x457b9a
call fcn.004b899b
push edi
mov ecx, esi
call fcn.004438c0
cmp dword [eax + 0x44], edi
je 0x457c20
cmp esi, dword [ebx + 0x70]
mov dword [esp + 0x58], edi
mov dword [esp + 0x5c], edi
mov dword [esp + 0x60], edi
mov dword [esp + 0x64], edi
jb 0x457bc1
call fcn.004b899b
push 0
mov ecx, esi
call fcn.004438c0
mov edx, dword [eax + 0x24]
mov ecx, dword [eax + 0x1c]
mov edi, dword [eax + 0x28]
add ecx, edx
mov edx, dword [eax + 0x20]
add edx, edi
mov edi, dword [eax + 0x18]
sub edi, dword [eax + 0x10]
add edi, edx
push edi
mov edi, dword [eax + 0x14]
sub edi, dword [eax + 0xc]
add edi, ecx
push edi
push edx
push ecx
lea ecx, [esp + 0x68]
push ecx
call dword [0x4ed2b8]
mov ecx, dword [ebp + 0xc]
lea edx, [esp + 0x58]
push edx
call fcn.00456850
cmp esi, dword [ebx + 0x70]
jb 0x457c10
call fcn.004b899b
push 0
mov ecx, esi
call fcn.004438c0
mov dword [eax + 0x44], 0
cmp esi, dword [ebx + 0x70]
jb 0x457c2a
call fcn.004b899b
add esi, 0x14
jmp 0x457b34
mov eax, dword [ebp + 0xc]
mov ecx, dword [esp + 0x54]
cmp ecx, dword [eax + 0xc]
jb 0x457c43
call fcn.004b899b
add dword [esp + 0x54], 0x14
mov esi, dword [esp + 0x54]
mov edi, dword [ebp + 0xc]
jmp 0x457af0
push 0x51d870
lea edx, [esp + 0x28]
push edx
mov dword [esp + 0x2c], vtable.CNullPointerException.0
call fcn.004b7fa0
push 0x51d860
lea eax, [esp + 0x24]
push eax
mov dword [esp + 0x28], vtable.CIndexOutOfBoundsException.0
call fcn.004b7fa0
cmp dword [edi + 0xa4], 0
je 0x4581b1
lea ecx, [edi + 0x28]
call fcn.0044e580
cmp dword [edi + 0xa4], 0
lea ecx, [edi + 0x2c]
mov dword [esp + 0x14], ecx
mov dword [esp + 0x24], 0
jle 0x4581b1
mov esi, dword [edi + 8]
cmp esi, dword [edi + 0xc]
jbe 0x457cc0
call fcn.004b899b
mov ebx, esi
mov dword [esp + 0x54], ebx
mov esi, dword [edi + 0xc]
cmp dword [edi + 8], esi
jbe 0x457cd3
call fcn.004b899b
cmp ebx, esi
je 0x458195
cmp ebx, dword [edi + 0xc]
jb 0x457ce5
call fcn.004b899b
mov esi, dword [ebx + 4]
test esi, esi
je 0x4581ba
mov ecx, dword [ebx + 0xc]
test ecx, ecx
jne 0x457cfb
xor edx, edx
jmp 0x457cfe
mov edx, dword [ecx + 0x10]
mov eax, dword [ebx + 8]
cmp eax, edx
jae 0x4581d1
test ecx, ecx
je 0x457d12
mov ecx, dword [ecx + 0xc]
jmp 0x457d14
xor ecx, ecx
imul eax, ecx
add eax, esi
mov eax, dword [eax + 8]
test eax, eax
jns 0x458173
test eax, 0x40000000
je 0x458173
mov edi, dword [esp + 0x54]
mov edx, dword [ebp + 0xc]
cmp edi, dword [edx + 0xc]
jb 0x457d40
call fcn.004b899b
mov esi, dword [edi + 4]
test esi, esi
je 0x4581e8
mov ecx, dword [edi + 0xc]
test ecx, ecx
jne 0x457d56
xor edx, edx
jmp 0x457d59
mov edx, dword [ecx + 0x10]
mov eax, dword [edi + 8]
cmp eax, edx
jae 0x4581ff
test ecx, ecx
je 0x457d6d
mov ecx, dword [ecx + 0xc]
jmp 0x457d6f
xor ecx, ecx
imul eax, ecx
lea edi, [eax + esi + 0x68]
mov esi, dword [edi + 4]
cmp esi, dword [edi + 8]
mov dword [esp + 0xc], edi
jbe 0x457d87
call fcn.004b899b
mov ebx, dword [edi + 8]
cmp dword [edi + 4], ebx
jbe 0x457d94
call fcn.004b899b
cmp esi, ebx
je 0x458173
cmp esi, dword [edi + 8]
jb 0x457da6
call fcn.004b899b
mov ebx, dword [esi + 4]
test ebx, ebx
je 0x458216
mov eax, dword [esi + 0xc]
test eax, eax
jne 0x457dbc
xor edx, edx
jmp 0x457dbf
mov edx, dword [eax + 0x10]
mov ecx, dword [esi + 8]
cmp ecx, edx
jae 0x45822d
test eax, eax
je 0x457dd3
mov eax, dword [eax + 0xc]
jmp 0x457dd5
xor eax, eax
imul eax, ecx
add eax, ebx
mov eax, dword [eax + 4]
test eax, eax
jns 0x458161
test eax, 0x40000000
je 0x458161
xor ecx, ecx
cmp esi, dword [edi + 8]
mov dword [esp + 0x58], ecx
mov dword [esp + 0x5c], ecx
mov dword [esp + 0x60], ecx
mov dword [esp + 0x64], ecx
jb 0x457e0e
call fcn.004b899b
xor ecx, ecx
mov ebx, dword [esi + 4]
cmp ebx, ecx
je 0x458244
mov eax, dword [esi + 0xc]
cmp eax, ecx
jne 0x457e24
xor edx, edx
jmp 0x457e27
mov edx, dword [eax + 0x10]
mov ecx, dword [esi + 8]
cmp ecx, edx
jae 0x45825b
test eax, eax
je 0x457e3b
mov eax, dword [eax + 0xc]
jmp 0x457e3d
xor eax, eax
imul eax, ecx
lea ecx, [esp + 0x18]
push ecx
mov ecx, dword [esp + 0x18]
lea edx, [esp + 0x5c]
push edx
add eax, ebx
push ecx
mov ecx, eax
call fcn.00456750
test eax, eax
je 0x458161
mov eax, dword [esp + 0x60]
sub eax, dword [esp + 0x58]
mov dword [esp + 0x18], eax
mov eax, dword [esp + 0x64]
sub eax, dword [esp + 0x5c]
cmp esi, dword [edi + 8]
mov dword [esp + 0x10], eax
jb 0x457e82
call fcn.004b899b
mov ebx, dword [esi + 4]
test ebx, ebx
je 0x458272
mov eax, dword [esi + 0xc]
test eax, eax
jne 0x457e98
xor edx, edx
jmp 0x457e9b
mov edx, dword [eax + 0x10]
mov ecx, dword [esi + 8]
cmp ecx, edx
jae 0x458289
test eax, eax
je 0x457eaf
mov eax, dword [eax + 0xc]
jmp 0x457eb1
xor eax, eax
imul eax, ecx
cmp dword [eax + ebx + 0x40], 0
je 0x458161
cmp esi, dword [edi + 8]
jb 0x457ec9
call fcn.004b899b
mov ebx, dword [esi + 4]
test ebx, ebx
je 0x4582a0
mov eax, dword [esi + 0xc]
test eax, eax
jne 0x457edf
xor edx, edx
jmp 0x457ee2
mov edx, dword [eax + 0x10]
mov ecx, dword [esi + 8]
cmp ecx, edx
jae 0x4582b7
test eax, eax
je 0x457ef6
mov eax, dword [eax + 0xc]
jmp 0x457ef8
xor eax, eax
imul eax, ecx
mov edx, dword [eax + ebx + 0x4c]
test edx, edx
lea eax, [eax + ebx + 0x48]
je 0x4582ce
mov ecx, dword [eax + 0xc]
test ecx, ecx
jne 0x457f16
xor ebx, ebx
jmp 0x457f19
mov ebx, dword [ecx + 0x10]
mov edi, dword [eax + 8]
cmp edi, ebx
jae 0x4582e5
test ecx, ecx
je 0x457f2d
mov eax, dword [ecx + 0xc]
jmp 0x457f2f
xor eax, eax
imul eax, edi
cmp dword [eax + edx], 0
jne 0x457f6e
mov edx, dword [esp + 0xc]
cmp esi, dword [edx + 8]
jb 0x457f46
call fcn.004b899b
push 0
mov ecx, esi
call fcn.004438c0
push 0
lea ecx, [eax + 0x48]
call fcn.004438c0
mov ecx, dword [esp + 0x10]
mov edx, dword [esp + 0x18]
push 1
push 0
push 0x15
push ecx
push edx
jmp 0x458011
mov ebx, dword [esp + 0xc]
cmp esi, dword [ebx + 8]
jb 0x457f7c
call fcn.004b899b
push 0
mov ecx, esi
call fcn.004438c0
push 0
lea ecx, [eax + 0x48]
call fcn.004438c0
cmp esi, dword [ebx + 8]
mov edi, dword [eax + 0x10]
jb 0x457f9c
call fcn.004b899b
push 0
mov ecx, esi
call fcn.004438c0
push 0
lea ecx, [eax + 0x48]
call fcn.004438c0
mov ebx, dword [esp + 0x18]
cmp edi, ebx
jl 0x457fc0
mov ecx, dword [esp + 0x10]
cmp dword [eax + 0x14], ecx
jge 0x458020
mov edi, dword [esp + 0xc]
cmp esi, dword [edi + 8]
jb 0x457fce
call fcn.004b899b
push 0
mov ecx, esi
call fcn.004438c0
push 0
lea ecx, [eax + 0x48]
call fcn.004438c0
mov ecx, eax
call fcn.0045afe0
cmp esi, dword [edi + 8]
jb 0x457ff2
call fcn.004b899b
push 0
mov ecx, esi
call fcn.004438c0
push 0
lea ecx, [eax + 0x48]
call fcn.004438c0
mov edx, dword [esp + 0x10]
push 1
push 0
push 0x15
push edx
push ebx
mov ecx, dword [esp + 0x34]
mov edx, dword [ecx + 4]
push edx
mov ecx, eax
call fcn.0045b2a0
mov ebx, dword [esp + 0xc]
cmp esi, dword [ebx + 8]
jb 0x45802e
call fcn.004b899b
mov edi, dword [esi + 4]
test edi, edi
je 0x4582fc
mov eax, dword [esi + 0xc]
test eax, eax
jne 0x458044
xor edx, edx
jmp 0x458047
mov edx, dword [eax + 0x10]
mov ecx, dword [esi + 8]
cmp ecx, edx
jae 0x458313
test eax, eax
je 0x45805b
mov eax, dword [eax + 0xc]
jmp 0x45805d
xor eax, eax
imul eax, ecx
mov ecx, dword [eax + edi + 0x3c]
add eax, edi
push ecx
mov ecx, dword [eax + 0x5c]
call fcn.0044a510
cmp esi, dword [ebx + 8]
mov dword [esp + 0x18], eax
jb 0x45807d
call fcn.004b899b
mov edi, dword [esi + 4]
test edi, edi
je 0x45832a
mov ecx, dword [esi + 0xc]
test ecx, ecx
jne 0x458093
xor edx, edx
jmp 0x458096
mov edx, dword [ecx + 0x10]
mov eax, dword [esi + 8]
cmp eax, edx
jae 0x458341
test ecx, ecx
je 0x4580aa
mov ecx, dword [ecx + 0xc]
jmp 0x4580ac
xor ecx, ecx
imul eax, ecx
lea eax, [eax + edi + 0x48]
mov edi, dword [eax + 4]
test edi, edi
je 0x458358
mov edx, dword [eax + 0xc]
test edx, edx
jne 0x4580c9
xor ebx, ebx
jmp 0x4580cc
mov ebx, dword [edx + 0x10]
mov ecx, dword [eax + 8]
cmp ecx, ebx
jae 0x45836f
test edx, edx
je 0x4580e0
mov edx, dword [edx + 0xc]
jmp 0x4580e2
xor edx, edx
mov ebx, dword [esp + 0x58]
imul ecx, edx
push 0
push 0
sub esp, 0x10
mov eax, esp
mov dword [eax], ebx
mov ebx, dword [esp + 0x74]
mov dword [eax + 4], ebx
mov ebx, dword [esp + 0x78]
mov dword [eax + 8], ebx
mov ebx, dword [esp + 0x7c]
mov dword [eax + 0xc], ebx
mov eax, dword [esp + 0x30]
push eax
add ecx, edi
call fcn.0045b1b0
mov ecx, dword [esp + 0xc]
cmp esi, dword [ecx + 8]
jb 0x458123
call fcn.004b899b
mov edi, dword [esi + 4]
test edi, edi
je 0x458386
mov eax, dword [esi + 0xc]
test eax, eax
jne 0x458139
xor edx, edx
jmp 0x45813c
mov edx, dword [eax + 0x10]
mov ecx, dword [esi + 8]
cmp ecx, edx
jae 0x45839d
test eax, eax
je 0x458150
mov eax, dword [eax + 0xc]
jmp 0x458152
xor eax, eax
imul eax, ecx
mov dword [eax + edi + 0x40], 0
mov edi, dword [esp + 0xc]
cmp esi, dword [edi + 8]
jb 0x45816b
call fcn.004b899b
add esi, 0x14
jmp 0x457d87
mov edx, dword [ebp + 0xc]
mov eax, dword [esp + 0x54]
cmp eax, dword [edx + 0xc]
jb 0x458184
call fcn.004b899b
add dword [esp + 0x54], 0x14
mov ebx, dword [esp + 0x54]
mov edi, dword [ebp + 0xc]
jmp 0x457cc6
mov eax, dword [esp + 0x24]
add dword [esp + 0x14], 0x10
add eax, 1
cmp eax, dword [edi + 0xa4]
mov dword [esp + 0x24], eax
jl 0x457cb3
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 8
push 0x51d870
lea ecx, [esp + 0x28]
push ecx
mov dword [esp + 0x2c], vtable.CNullPointerException.0
call fcn.004b7fa0
push 0x51d860
lea edx, [esp + 0x24]
push edx
mov dword [esp + 0x28], vtable.CIndexOutOfBoundsException.0
call fcn.004b7fa0
push 0x51d870
lea eax, [esp + 0x28]
push eax
mov dword [esp + 0x2c], vtable.CNullPointerException.0
call fcn.004b7fa0
push 0x51d860
lea ecx, [esp + 0x28]
push ecx
mov dword [esp + 0x2c], vtable.CIndexOutOfBoundsException.0
call fcn.004b7fa0
push 0x51d870
lea edx, [esp + 0x28]
push edx
mov dword [esp + 0x2c], vtable.CNullPointerException.0
call fcn.004b7fa0
push 0x51d860
lea eax, [esp + 0x24]
push eax
mov dword [esp + 0x28], vtable.CIndexOutOfBoundsException.0
call fcn.004b7fa0
push 0x51d870
lea ecx, [esp + 0x2c]
push ecx
mov dword [esp + 0x30], vtable.CNullPointerException.0
call fcn.004b7fa0
push 0x51d860
lea edx, [esp + 0x30]
push edx
mov dword [esp + 0x34], vtable.CIndexOutOfBoundsException.0
call fcn.004b7fa0
push 0x51d870
lea eax, [esp + 0x30]
push eax
mov dword [esp + 0x34], vtable.CNullPointerException.0
call fcn.004b7fa0
push 0x51d860
lea ecx, [esp + 0x2c]
push ecx
mov dword [esp + 0x30], vtable.CIndexOutOfBoundsException.0
call fcn.004b7fa0
push 0x51d870
lea edx, [esp + 0x30]
push edx
mov dword [esp + 0x34], vtable.CNullPointerException.0
call fcn.004b7fa0
push 0x51d860
lea eax, [esp + 0x2c]
push eax
mov dword [esp + 0x30], vtable.CIndexOutOfBoundsException.0
call fcn.004b7fa0
push 0x51d870
lea ecx, [esp + 0x28]
push ecx
mov dword [esp + 0x2c], vtable.CNullPointerException.0
call fcn.004b7fa0
push 0x51d860
lea edx, [esp + 0x24]
push edx
mov dword [esp + 0x28], vtable.CIndexOutOfBoundsException.0
call fcn.004b7fa0
push 0x51d870
lea eax, [esp + 0x34]
push eax
mov dword [esp + 0x38], vtable.CNullPointerException.0
call fcn.004b7fa0
push 0x51d860
lea ecx, [esp + 0x38]
push ecx
mov dword [esp + 0x3c], vtable.CIndexOutOfBoundsException.0
call fcn.004b7fa0
push 0x51d870
lea edx, [esp + 0x3c]
push edx
mov dword [esp + 0x40], vtable.CNullPointerException.0
call fcn.004b7fa0
push 0x51d860
lea eax, [esp + 0x40]
push eax
mov dword [esp + 0x44], vtable.CIndexOutOfBoundsException.0
call fcn.004b7fa0
push 0x51d870
lea ecx, [esp + 0x44]
push ecx
mov dword [esp + 0x48], vtable.CNullPointerException.0
call fcn.004b7fa0
push 0x51d860
lea edx, [esp + 0x48]
push edx
mov dword [esp + 0x4c], vtable.CIndexOutOfBoundsException.0
call fcn.004b7fa0
push 0x51d870
lea eax, [esp + 0x4c]
push eax
mov dword [esp + 0x50], vtable.CNullPointerException.0
call fcn.004b7fa0
push 0x51d860
lea ecx, [esp + 0x50]
push ecx
mov dword [esp + 0x54], vtable.CIndexOutOfBoundsException.0
call fcn.004b7fa0
int3