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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
sub esp, 0x4c
push ebx
push esi
push edi
mov edi, ecx
cmp dword [edi + 0x100], 5
mov dword [esp + 0x10], edi
jne 0x44b55b
cmp dword [edi + 0xf8], 1
jne 0x44b55b
mov ebx, 1
jmp 0x44b55d
xor ebx, ebx
mov esi, dword [ebp + 8]
test esi, esi
je 0x44b569
cmp esi, 1
jne 0x44b570
mov eax, edi
call fcn.0044c200
mov eax, dword [edi + 0xcc]
cmp eax, 0xffffffff
je 0x44b59b
cmp eax, dword [edi + 0xd0]
jne 0x44b59b
test ebx, ebx
je 0x44b59b
test esi, esi
je case.default.0x44b8a3
cmp esi, 1
jne 0x44b609
mov esi, 2
jmp 0x44b617
cmp esi, 2
jne 0x44b609
cmp dword [edi + 0xd0], 0xffffffff
jne 0x44b89a
cmp eax, 0xffffffff
je 0x44b617
test ebx, ebx
jne 0x44b5c6
mov eax, dword [edi]
mov edx, dword [eax + 0x184]
mov ecx, edi
call edx
test eax, eax
jne 0x44b617
mov eax, dword [edi + 0xcc]
test eax, eax
jl 0x44b5e3
mov ecx, dword [edi + 0xfc]
cmp eax, dword [ecx + 0x2c]
jge 0x44b5e3
mov ecx, dword [ecx + 0x28]
mov eax, dword [ecx + eax*4]
jmp 0x44b5e5
xor eax, eax
push eax
push 0x5bc574
call fcn.004f9663
add esp, 8
test eax, eax
je 0x44b617
mov ecx, eax
call fcn.004329f0
test eax, eax
je 0x44b617
mov esi, 3
jmp 0x44b617
cmp esi, 3
je 0x44b617
cmp esi, 2
jne 0x44b89a
cmp dword [edi + 0xd0], 0xffffffff
jne 0x44b89a
test ebx, ebx
jne 0x44b635
cmp dword [edi + 0x100], 4
jne 0x44b89a
mov eax, dword [edi + 0xcc]
xor ecx, ecx
cmp esi, 3
sete cl
lea ecx, [ecx + ecx - 1]
mov dword [esp + 0x14], ecx
cmp eax, 0xffffffff
jne 0x44b68f
mov esi, dword [edi]
mov edi, dword [edi + 0xfc]
mov edx, ecx
add esi, 0x148
neg edx
sbb edx, edx
add edx, 3
push edx
push 0
push 1
push ecx
mov eax, 1
or ebx, 0xffffffff
call fcn.00445f60
mov ecx, dword [esp + 0x14]
push eax
mov eax, dword [esi]
call eax
lea eax, [ebx + 2]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
test eax, eax
jl 0x44b6a6
mov ecx, dword [edi + 0xfc]
cmp eax, dword [ecx + 0x2c]
jge 0x44b6a6
mov ecx, dword [ecx + 0x28]
mov eax, dword [ecx + eax*4]
jmp 0x44b6a8
xor eax, eax
push eax
push 0x5bc574
call fcn.004f9663
add esp, 8
test eax, eax
je 0x44b6c9
mov ecx, eax
call fcn.004329f0
test eax, eax
jne 0x44b89a
mov ebx, dword [edi + 0xcc]
test ebx, ebx
jl 0x44b6e6
mov edi, dword [edi + 0xfc]
cmp ebx, dword [edi + 0x2c]
jge 0x44b6e6
mov edx, dword [edi + 0x28]
mov eax, dword [edx + ebx*4]
jmp 0x44b6e8
xor eax, eax
mov ecx, dword [eax + 0xc0]
mov edx, dword [eax + 0xc4]
mov dword [esp + 0x18], ecx
mov ecx, dword [eax + 0xc8]
mov dword [esp + 0x1c], edx
mov edx, dword [eax + 0xcc]
mov dword [esp + 0x20], ecx
mov ecx, dword [eax + 0xb0]
mov dword [esp + 0x24], edx
mov edx, dword [eax + 0xb4]
mov dword [esp + 0x28], ecx
mov ecx, dword [eax + 0xb8]
mov dword [esp + 0x2c], edx
mov edx, dword [eax + 0xbc]
xor esi, esi
mov dword [esp + 0x30], ecx
mov dword [esp + 0x34], edx
lea ebx, [ebx]
mov eax, dword [esp + 0x14]
mov ecx, dword [esp + 0x10]
mov edi, dword [ecx + 0xfc]
push 0
push 1
push eax
mov eax, 1
call fcn.00445f60
mov ebx, eax
test ebx, ebx
jl 0x44b77a
mov edx, dword [esp + 0x10]
mov eax, dword [edx + 0xfc]
cmp ebx, dword [eax + 0x2c]
jge 0x44b77a
mov eax, dword [eax + 0x28]
mov edi, dword [eax + ebx*4]
jmp 0x44b77c
xor edi, edi
mov ecx, dword [edi + 0xc4]
mov edx, dword [edi + 0xc8]
mov eax, dword [edi + 0xc0]
mov dword [esp + 0x50], edx
mov edx, dword [edi + 0xb0]
mov dword [esp + 0x4c], ecx
mov ecx, dword [edi + 0xcc]
mov dword [esp + 0x38], edx
mov dword [esp + 0x54], ecx
mov ecx, dword [edi + 0xb4]
mov dword [esp + 0x3c], ecx
mov edx, dword [edi + 0xb8]
mov dword [esp + 0x40], edx
mov edx, dword [edi + 0xbc]
mov dword [esp + 0x44], edx
test esi, esi
je 0x44b864
cmp dword [esi + 0xb4], ecx
jne 0x44b834
cmp eax, dword [esp + 0x18]
jg 0x44b80c
mov edx, dword [esi + 0xc4]
mov ecx, dword [esi + 0xc0]
cmp eax, ecx
mov dword [esp + 0x4c], edx
mov edx, dword [esi + 0xc8]
mov dword [esp + 0x50], edx
mov edx, dword [esi + 0xcc]
mov dword [esp + 0x54], edx
jg 0x44b877
cmp eax, dword [esp + 0x18]
jl 0x44b834
mov edx, dword [esi + 0xc4]
mov ecx, dword [esi + 0xc0]
cmp ecx, eax
mov dword [esp + 0x4c], edx
mov edx, dword [esi + 0xc8]
mov dword [esp + 0x50], edx
mov edx, dword [esi + 0xcc]
mov dword [esp + 0x54], edx
jg 0x44b877
mov ecx, dword [esp + 0x10]
mov edx, dword [ecx]
mov edx, dword [edx + 0x148]
xor eax, eax
cmp dword [esp + 0x14], eax
setle al
add eax, 2
push eax
mov eax, dword [esi + 0x80]
push eax
call edx
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
cmp ecx, dword [esp + 0x2c]
je 0x44b879
lea ecx, [esp + 0x38]
call fcn.00415eb0
test eax, eax
jne 0x44b879
mov esi, edi
mov eax, dword [esp + 0x10]
cmp ebx, dword [eax + 0xcc]
je 0x44b856
cmp ebx, 0xffffffff
jne 0x44b740
lea eax, [ebx + 2]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
cmp esi, 7
ja case.default.0x44b8a3
jmp dword [esi*4 + 0x44bd0c]
mov esi, dword [edi + 0xfc]
cmp dword [esi + 0x2c], 0
mov eax, dword [edi + 0xcc]
mov dword [esp + 0x14], eax
je 0x44bab5
lea edi, [eax + 1]
xor ebx, ebx
cmp edi, eax
je 0x44b94b
lea ecx, [ecx]
mov eax, dword [esi + 0x2c]
cmp edi, eax
jl 0x44b8f1
cmp dword [esp + 0x14], 0xffffffff
je 0x44b96e
test ebx, ebx
jne 0x44b96e
xor edi, edi
lea ebx, [edi + 1]
jmp 0x44b905
test edi, edi
jge 0x44b905
test ebx, ebx
jne 0x44b96e
lea edi, [eax - 1]
mov ebx, 1
test edi, edi
jl 0x44b919
cmp edi, eax
jge 0x44b919
test edi, edi
jl 0x44b973
cmp edi, eax
jge 0x44b973
mov ecx, dword [esi + 0x28]
mov ecx, dword [ecx + edi*4]
jmp 0x44b91b
xor ecx, ecx
mov edx, dword [ecx]
mov eax, dword [edx + 0x78]
push 8
call eax
test eax, eax
je 0x44b944
test edi, edi
jl 0x44b939
cmp edi, dword [esi + 0x2c]
jge 0x44b939
mov ecx, dword [esi + 0x28]
mov eax, dword [ecx + edi*4]
jmp 0x44b93b
xor eax, eax
test byte [eax + 0xd4], 2
je 0x44b94b
inc edi
cmp edi, dword [esp + 0x14]
jne 0x44b8d0
mov eax, edi
mov edi, dword [esp + 0x10]
push 2
mov edx, dword [edi]
push eax
mov eax, dword [edx + 0x148]
mov ecx, edi
call eax
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
or eax, 0xffffffff
jmp 0x44b94d
call fcn.004dcd9a
mov esi, dword [edi + 0xfc]
mov eax, dword [esi + 0x2c]
mov ecx, dword [edi + 0xcc]
mov dword [esp + 0x14], ecx
test eax, eax
jne 0x44b996
or eax, 0xffffffff
push 3
jmp 0x44b953
lea edi, [ecx - 1]
cmp ecx, 0xffffffff
jne 0x44b9a1
lea edi, [eax - 1]
xor ebx, ebx
cmp edi, ecx
je 0x44ba1a
mov eax, dword [esi + 0x2c]
cmp edi, eax
jl 0x44b9b9
test ebx, ebx
jne 0x44ba27
xor edi, edi
lea ebx, [edi + 1]
jmp 0x44b9d4
test edi, edi
jge 0x44b9d4
cmp dword [esp + 0x14], 0xffffffff
je 0x44ba27
test ebx, ebx
jne 0x44ba27
lea edi, [eax - 1]
mov ebx, 1
test edi, edi
jl 0x44b9e8
cmp edi, eax
jge 0x44b9e8
test edi, edi
jl 0x44b973
cmp edi, eax
jge 0x44b973
mov ecx, dword [esi + 0x28]
mov ecx, dword [ecx + edi*4]
jmp 0x44b9ea
xor ecx, ecx
mov edx, dword [ecx]
mov eax, dword [edx + 0x78]
push 8
call eax
test eax, eax
je 0x44ba13
test edi, edi
jl 0x44ba08
cmp edi, dword [esi + 0x2c]
jge 0x44ba08
mov ecx, dword [esi + 0x28]
mov eax, dword [ecx + edi*4]
jmp 0x44ba0a
xor eax, eax
test byte [eax + 0xd4], 2
je 0x44ba1a
dec edi
cmp edi, dword [esp + 0x14]
jne 0x44b9a7
mov eax, edi
mov edi, dword [esp + 0x10]
push 3
jmp 0x44b953
mov edi, dword [esp + 0x10]
or eax, 0xffffffff
push 3
jmp 0x44b953
mov esi, dword [edi + 0xfc]
cmp dword [esi + 0x2c], 0
je 0x44bab5
xor edi, edi
xor ebx, ebx
mov eax, dword [esi + 0x2c]
cmp edi, eax
jge 0x44bab1
test edi, edi
jge 0x44ba60
test ebx, ebx
jne 0x44bab1
lea edi, [eax - 1]
mov ebx, 1
test edi, edi
jl 0x44ba7c
cmp edi, eax
jge 0x44ba7c
test edi, edi
jl 0x44b973
cmp edi, eax
jge 0x44b973
mov ecx, dword [esi + 0x28]
mov ecx, dword [ecx + edi*4]
jmp 0x44ba7e
xor ecx, ecx
mov edx, dword [ecx]
mov eax, dword [edx + 0x78]
push 8
call eax
test eax, eax
je 0x44baab
test edi, edi
jl 0x44ba9c
cmp edi, dword [esi + 0x2c]
jge 0x44ba9c
mov ecx, dword [esi + 0x28]
mov eax, dword [ecx + edi*4]
jmp 0x44ba9e
xor eax, eax
test byte [eax + 0xd4], 2
je 0x44b94b
inc edi
cmp edi, 0xffffffff
jne 0x44ba45
mov edi, dword [esp + 0x10]
or eax, 0xffffffff
jmp 0x44b951
mov esi, dword [edi + 0xfc]
mov ecx, dword [esi + 0x2c]
mov eax, ecx
mov dword [esp + 0x14], ecx
test eax, eax
je 0x44b98f
lea edi, [ecx - 1]
cmp ecx, 0xffffffff
jne 0x44badf
lea edi, [eax - 1]
xor ebx, ebx
cmp edi, eax
je 0x44ba1a
lea esp, [esp]
mov eax, dword [esi + 0x2c]
cmp edi, eax
jl 0x44bb06
test ebx, ebx
jne 0x44ba27
xor edi, edi
lea ebx, [edi + 1]
jmp 0x44bb29
test edi, edi
jge 0x44bb29
cmp dword [esp + 0x14], 0xffffffff
je 0x44ba27
test ebx, ebx
jne 0x44ba27
lea edi, [eax - 1]
mov ebx, 1
test edi, edi
jl 0x44bb45
cmp edi, eax
jge 0x44bb45
test edi, edi
jl 0x44b973
cmp edi, eax
jge 0x44b973
mov ecx, dword [esi + 0x28]
mov ecx, dword [ecx + edi*4]
jmp 0x44bb47
xor ecx, ecx
mov edx, dword [ecx]
mov eax, dword [edx + 0x78]
push 8
call eax
test eax, eax
je 0x44bb74
test edi, edi
jl 0x44bb65
cmp edi, dword [esi + 0x2c]
jge 0x44bb65
mov ecx, dword [esi + 0x28]
mov eax, dword [ecx + edi*4]
jmp 0x44bb67
xor eax, eax
test byte [eax + 0xd4], 2
je 0x44ba1a
dec edi
cmp edi, dword [esp + 0x14]
jne 0x44baf0
mov eax, edi
mov edi, dword [esp + 0x10]
push 3
jmp 0x44b953
mov eax, dword [edi + 0xcc]
cmp eax, 0xffffffff
je case.default.0x44b8a3
cmp eax, dword [edi + 0xd0]
je case.default.0x44b8a3
test eax, eax
jl 0x44bbb4
mov ecx, edi
call fcn.0044c850
jmp 0x44bbb6
xor eax, eax
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xfc]
push 2
call eax
mov esi, edi
mov ebx, dword [esi + 0xcc]
push 0
call fcn.0044af70
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
cmp dword [edi + 0xd0], 0xffffffff
je case.default.0x44b8a3
push 0
or ebx, 0xffffffff
mov esi, edi
call fcn.0044af70
mov edx, dword [esi]
mov eax, dword [edx + 0x140]
push 0
push 0
push 1
mov ecx, esi
call eax
lea eax, [ebx + 2]
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov esi, edi
call fcn.0042f650
cmp eax, 1
jle 0x44bc3d
dec eax
push eax
push esi
mov eax, esi
call fcn.0044d500
push eax
call fcn.0042fab0
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov edx, dword [esi]
mov eax, dword [edx + 0x184]
mov ecx, esi
call eax
test eax, eax
je 0x44bc6b
mov edx, dword [esi]
mov eax, dword [edx + 0x184]
mov ecx, esi
call eax
mov edx, dword [eax]
push 0
push 0
mov ecx, eax
mov eax, dword [edx + 0x140]
push 1
call eax
mov edx, dword [esi]
mov eax, dword [edx + 0x140]
push 0
push 1
push 0
mov ecx, esi
call eax
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
mov eax, dword [edi + 0xcc]
cmp eax, 0xffffffff
je 0x44b960
test eax, eax
jl 0x44bca7
mov ecx, edi
call fcn.0044c850
jmp 0x44bca9
xor eax, eax
mov edx, dword [eax]
mov ecx, eax
mov eax, dword [edx + 0xfc]
push 2
call eax
mov eax, dword [edi + 0xcc]
test eax, eax
jl 0x44bccc
mov ecx, edi
call fcn.0044c850
mov edi, eax
jmp 0x44bcce
xor edi, edi
mov esi, dword [edi]
push 0
push 0
lea ecx, [esp + 0x20]
add esi, 0xe0
call fcn.0040fcd0
mov ecx, dword [eax + 4]
mov edx, dword [eax]
mov eax, dword [esi]
push ecx
push edx
push 1
mov ecx, edi
call eax
mov eax, 1
pop edi
pop esi
pop ebx
mov esp, ebp
pop ebp
ret 4
pop edi
pop esi
xor eax, eax
pop ebx
mov esp, ebp
pop ebp
ret 4