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

Disassembly:
push ebp
mov ebp, esp
sub esp, 0x14
mov eax, dword [0x44e004]
xor eax, ebp
mov dword [ebp - 4], eax
push ebx
push esi
mov esi, ecx
push edi
xor edi, edi
mov eax, dword [esi + 4]
cmp eax, 0xf
ja case.default.0x410193
jmp dword [eax*4 + 0x410960]
mov dword [esi + 4], 1
mov eax, edi
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00429577
mov esp, ebp
pop ebp
ret
call fcn.0040f030
mov edi, eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00429577
mov esp, ebp
pop ebp
ret
call fcn.0040f220
mov edi, eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00429577
mov esp, ebp
pop ebp
ret
call fcn.0040cc30
mov edi, eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00429577
mov esp, ebp
pop ebp
ret
call fcn.0040f700
mov edi, eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00429577
mov esp, ebp
pop ebp
ret
mov eax, dword [esi + 0x38]
mov eax, dword [eax + 0xc]
movzx eax, byte [eax + 0xa]
dec eax
cmp eax, 9
ja case.0x41022f.5
movzx eax, byte [eax + 0x4109a8]
jmp dword [eax*4 + 0x4109a0]
call fcn.0040e3e0
mov edi, eax
test edi, edi
jne 0x410934
cmp dword [esi + 0x74], 0x16
je 0x4102c1
cmp dword [esi], 0
je 0x4102a9
cmp dword [esi + 0xb4], 0
mov ecx, esi
je 0x410278
call fcn.0040e180
mov edi, 0xffff8900
mov eax, edi
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00429577
mov esp, ebp
pop ebp
ret
mov eax, dword [esi + 0xa8]
mov edx, 1
mov dword [esi + 0xac], 0x15
mov dword [esi + 0xb0], 2
mov byte [eax], 2
mov eax, dword [esi + 0xa8]
mov byte [eax + 1], 0xa
call fcn.0040e220
mov edi, 0xffff8900
mov eax, edi
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00429577
mov esp, ebp
pop ebp
ret
mov eax, dword [esi + 0x6c]
inc dword [esi + 4]
cmp byte [eax], 0xd
mov eax, dword [esi + 0x38]
sete cl
mov byte [eax + 0x168], cl
mov eax, dword [esi + 0x38]
cmp byte [eax + 0x168], 0
jne 0x410301
xor edi, edi
mov dword [esi + 0x88], 1
mov eax, edi
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00429577
mov esp, ebp
pop ebp
ret
mov edx, dword [esi + 0x80]
mov edi, dword [esi + 0x6c]
cmp edx, 4
jbe 0x410348
movzx ebx, byte [edi + 4]
lea eax, [ebx + 6]
cmp edx, eax
jbe 0x410348
mov ax, word [edi + ebx + 5]
mov ch, al
mov cl, ah
movzx eax, cx
add ebx, eax
lea eax, [ebx + 7]
cmp edx, eax
jbe 0x410348
mov ax, word [edi + ebx + 7]
mov ch, al
mov cl, ah
movzx eax, cx
add eax, 9
add eax, ebx
cmp edx, eax
je 0x41073d
push 0x32
mov dl, 2
mov ecx, esi
call fcn.0040e740
mov edi, 0xffff8d00
add esp, 4
mov eax, edi
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00429577
mov esp, ebp
pop ebp
ret
xor edi, edi
mov dword [esi + 4], 6
mov eax, edi
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00429577
mov esp, ebp
pop ebp
ret
cmp dword [esi + 0x88], edi
jne 0x410524
nop word [eax + eax]
mov edx, dword [esi + 0x80]
mov eax, dword [esi + 0x70]
test edx, edx
je 0x4103f1
test eax, eax
jne 0x410648
mov eax, dword [esi + 0x78]
cmp edx, eax
jae 0x4103de
mov ecx, dword [esi + 0x6c]
sub eax, edx
push eax
mov dword [esi + 0x78], eax
lea eax, [edx + ecx]
push eax
push ecx
call fcn.0042b1a0
add esp, 0xc
mov dword [esi + 0x80], 0
jmp 0x4103f8
mov dword [esi + 0x78], 0
mov dword [esi + 0x80], 0
jmp 0x4103f8
test eax, eax
jne 0x4103f8
mov dword [esi + 0x78], eax
cmp dword [esi + 0x78], 0
ja 0x410417
mov ecx, esi
call fcn.0040e570
mov edi, eax
cmp edi, 0xffff9a80
je 0x410459
test edi, edi
jne 0x410934
mov eax, dword [esi + 0x74]
cmp eax, 0x16
jne 0x41047a
mov edi, dword [esi + 0x78]
cmp edi, 4
jae 0x41042e
mov edi, 0xffff8e00
jmp 0x410459
mov ecx, dword [esi + 0x6c]
movzx edx, byte [ecx + 1]
movzx eax, byte [ecx + 2]
shl edx, 8
or edx, eax
movzx eax, byte [ecx + 3]
shl edx, 8
or eax, edx
add eax, 4
mov dword [esi + 0x80], eax
cmp edi, eax
jae 0x4104c8
mov edi, 0xffff8f80
cmp edi, 0xffff9980
je 0x4103a0
cmp edi, 0xffff9a80
je 0x4103a0
test edi, edi
je 0x4104c8
jmp 0x41050d
cmp eax, 0x14
je 0x4104ba
cmp eax, 0x15
jne 0x4104c8
cmp dword [esi + 0x78], 2
jne 0x410508
mov ecx, dword [esi + 0x6c]
mov al, byte [ecx]
cmp al, 2
je 0x4104b3
cmp al, 1
jne 0x4103a0
mov al, byte [ecx + 1]
test al, al
je 0x4104ac
cmp al, 0x64
jne 0x4103a0
jmp 0x4104c8
mov edi, 0xffff8780
jmp 0x41050d
mov edi, 0xffff8880
jmp 0x41050d
cmp dword [esi + 0x78], 1
jne 0x410508
mov eax, dword [esi + 0x6c]
cmp byte [eax], 1
jne 0x410508
cmp dword [esi + 0x74], 0x16
jne 0x4102a9
cmp dword [esi + 4], 0x1b
jge 0x41052a
mov eax, dword [esi + 0x38]
test eax, eax
je 0x41052a
push dword [esi + 0x80]
mov eax, dword [eax + 0x10]
push dword [esi + 0x6c]
push esi
call eax
mov edi, eax
add esp, 0xc
test edi, edi
je 0x41052a
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00429577
mov esp, ebp
pop ebp
ret
mov edi, 0xffff8e00
mov eax, edi
test eax, eax
je 0x41052a
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00429577
mov esp, ebp
pop ebp
ret
mov dword [esi + 0x88], edi
cmp dword [esi + 0x74], 0x16
jne 0x4102a9
cmp dword [esi + 0x80], 4
jne 0x410549
mov eax, dword [esi + 0x6c]
cmp byte [eax], 0xe
je 0x41073a
cmp dword [esi], 0
je 0x4105a7
cmp dword [esi + 0xb4], 0
mov ecx, esi
je 0x410576
call fcn.0040e180
mov edi, 0xffff8d00
mov eax, edi
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00429577
mov esp, ebp
pop ebp
ret
mov eax, dword [esi + 0xa8]
mov edx, 1
mov dword [esi + 0xac], 0x15
mov dword [esi + 0xb0], 2
mov byte [eax], 2
mov eax, dword [esi + 0xa8]
mov byte [eax + 1], 0x32
call fcn.0040e220
mov edi, 0xffff8d00
mov eax, edi
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00429577
mov esp, ebp
pop ebp
ret
call fcn.0040c860
mov edi, eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00429577
mov esp, ebp
pop ebp
ret
call fcn.0040fc30
mov edi, eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00429577
mov esp, ebp
pop ebp
ret
call fcn.0040fe70
mov edi, eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00429577
mov esp, ebp
pop ebp
ret
mov eax, dword [esi + 0xa8]
mov dword [esi + 0xac], 0x14
mov dword [esi + 0xb0], 1
mov byte [eax], 1
mov ecx, dword [esi + 0xb0]
mov edi, dword [esi + 0xa8]
inc dword [esi + 4]
mov eax, dword [esi + 0xac]
lea edx, [ecx - 4]
mov bl, byte [edi]
cmp eax, 0x16
je 0x410660
cmp eax, 0x14
je 0x410664
mov edi, 0xffff9400
mov eax, edi
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00429577
mov esp, ebp
pop ebp
ret
test bl, bl
je 0x41066a
cmp dword [esi + 0x38], 0
je 0x410648
cmp ecx, 0x4000
ja 0x410648
cmp eax, 0x16
jne 0x4106bc
mov eax, edx
mov ecx, edx
shr eax, 0x10
mov byte [edi + 1], al
mov eax, dword [esi + 0xa8]
shr ecx, 8
mov byte [eax + 2], cl
mov eax, dword [esi + 0xa8]
mov byte [eax + 3], dl
test bl, bl
je 0x4106bc
push dword [esi + 0xb0]
mov eax, dword [esi + 0x38]
push dword [esi + 0xa8]
push esi
mov eax, dword [eax + 0x10]
call eax
mov edi, eax
add esp, 0xc
test edi, edi
jne 0x410934
mov edx, 1
mov ecx, esi
call fcn.0040e220
mov edi, eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00429577
mov esp, ebp
pop ebp
ret
call fcn.0040d0c0
mov edi, eax
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00429577
mov esp, ebp
pop ebp
ret
call fcn.0040e3e0
mov edi, eax
test edi, edi
jne 0x410934
cmp dword [esi + 0x74], 0x14
jne 0x41024b
mov eax, dword [esi + 0x48]
xorps xmm0, xmm0
mov dword [esi + 0x3c], eax
mov eax, dword [esi + 0x34]
mov dword [esi + 0x28], eax
mov eax, dword [esi + 0x5c]
movq qword [eax], xmm0
mov ecx, dword [esi + 0x60]
lea eax, [ecx - 8]
mov dword [esi + 0x5c], eax
lea eax, [ecx + 3]
mov dword [esi + 0x64], eax
lea eax, [ecx + 5]
mov dword [esi + 0x68], eax
mov dword [esi + 0x6c], eax
inc dword [esi + 4]
xor edi, edi
mov eax, edi
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00429577
mov esp, ebp
pop ebp
ret
mov eax, dword [esi]
mov ecx, dword [esi + 0x38]
movzx eax, byte [eax + 8]
xor eax, 1
push eax
lea eax, [ebp - 0x10]
push eax
mov eax, dword [ecx + 0x18]
push esi
call eax
add esp, 0xc
mov ecx, esi
call fcn.0040e3e0
mov edi, eax
test edi, edi
jne 0x410845
cmp dword [esi + 0x74], 0x16
je 0x4107da
cmp dword [esi], 0
je 0x4107d3
cmp dword [esi + 0xb4], 0
mov ecx, esi
je 0x4107a2
call fcn.0040e180
mov edi, 0xffff8900
jmp 0x410845
mov eax, dword [esi + 0xa8]
mov edx, 1
mov dword [esi + 0xac], 0x15
mov dword [esi + 0xb0], 2
mov byte [eax], 2
mov eax, dword [esi + 0xa8]
mov byte [eax + 1], 0xa
call fcn.0040e220
mov edi, 0xffff8900
jmp 0x410845
mov ecx, dword [esi + 0x6c]
cmp byte [ecx], 0x14
jne 0x410783
cmp dword [esi + 0x80], 0x10
je 0x410800
push 0x32
mov dl, 2
mov ecx, esi
call fcn.0040e740
add esp, 4
mov edi, 0xffff8d00
jmp 0x410845
push 0xc
add ecx, 4
lea edx, [ebp - 0x10]
call fcn.00414ef0
add esp, 4
test eax, eax
je 0x410829
push 0x33
mov dl, 2
mov ecx, esi
call fcn.0040e740
add esp, 4
mov edi, 0xffff9200
jmp 0x410845
mov eax, dword [esi + 0x38]
cmp byte [eax], 0
je 0x410842
mov eax, dword [esi]
cmp byte [eax + 8], 0
jne 0x410845
mov dword [esi + 4], 0xa
jmp 0x410845
inc dword [esi + 4]
mov ecx, 0xc
lea eax, [ebp - 0x10]
nop dword [eax]
mov byte [eax], 0
lea eax, [eax + 1]
sub ecx, 1
jne 0x410850
mov eax, edi
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00429577
mov esp, ebp
pop ebp
ret
mov dword [esi + 4], 0xf
mov eax, edi
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00429577
mov esp, ebp
pop ebp
ret
mov eax, dword [esi + 0x38]
mov ebx, dword [esi + 0x30]
mov al, byte [eax]
mov byte [ebp - 0x11], al
test ebx, ebx
je 0x4108cb
mov eax, dword [ebx + 0x68]
test eax, eax
je 0x4108b0
push eax
call fcn.0042f371
add esp, 4
mov dword [ebx + 0x68], edi
mov dword [ebx + 0x70], edi
mov dword [ebx + 0x6c], edi
mov eax, 0x78
mov byte [ebx], 0
lea ebx, [ebx + 1]
sub eax, 1
jne 0x4108b5
push dword [esi + 0x30]
call fcn.0042f371
add esp, 4
mov edx, dword [esi]
mov eax, dword [esi + 0x34]
mov dword [esi + 0x30], eax
mov dword [esi + 0x34], edi
mov ebx, dword [edx + 0x24]
test ebx, ebx
je 0x4108f8
mov ecx, dword [eax + 0x14]
test ecx, ecx
je 0x4108f8
cmp byte [ebp - 0x11], 0
jne 0x4108f8
push eax
push ecx
add eax, 0x18
push eax
push dword [edx + 0x28]
call ebx
add esp, 0x10
mov ecx, esi
call fcn.0040bd60
push dword [esi + 0x38]
call fcn.0042f371
mov ecx, dword [esi + 0x44]
add esp, 4
mov dword [esi + 0x38], edi
test ecx, ecx
je 0x410924
call fcn.0040e9b0
push dword [esi + 0x44]
call fcn.0042f371
add esp, 4
mov eax, dword [esi + 0x48]
mov dword [esi + 0x44], eax
mov dword [esi + 0x48], edi
mov dword [esi + 4], 0x1b
mov eax, edi
pop edi
pop esi
pop ebx
mov ecx, dword [ebp - 4]
xor ecx, ebp
call fcn.00429577
mov esp, ebp
pop ebp
ret
mov ecx, dword [ebp - 4]
mov eax, 0xffff8f00
pop edi
pop esi
xor ecx, ebp
pop ebx
call fcn.00429577
mov esp, ebp
pop ebp
ret