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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0xcc
mov esi, dword [esp + 0xe4]
mov eax, dword [esp + 0xe0]
lea ecx, [esp + 0x78]
mov dword [esp], eax
mov dword [esp + 4], ecx
mov dword [esp + 8], 0x100001
mov dword [esp + 0xc], 3
mov dword [esp + 0x10], 0x4021
call fcn.00439770
xor ebx, ebx
cmp eax, 0
jl 0x41f79e
mov dword [esp], esi
call fcn.00413d60
shl eax, 1
mov word [esp + 0xa8], ax
movzx eax, ax
add eax, 2
mov word [esp + 0xaa], ax
mov dword [esp + 0xac], esi
mov dword [esp], 0x848
call fcn.00435be0
mov dword [esp + 0x64], eax
mov esi, dword [esp + 0x78]
mov al, byte [esp + 0x80]
mov byte [esp + 0x9c], al
mov word [esp + 0x5c], 0x7338
mov word [esp + 0x5e], 0x7327
xor eax, eax
cmp eax, 2
jae 0x41f0e8
mov cx, word [esp + eax*2 + 0x5c]
mov dx, ax
add dx, 0xb94f
xor dx, cx
add dx, 0x3588
mov word [esp + eax*2 + 0x5c], dx
add eax, 1
jmp 0x41f0c4
mov edi, dword [esp + 0x5c]
xor ebp, ebp
mov ecx, 2
cmp ebp, dword [0x4452ac]
jb 0x41f100
jmp 0x41f1b8
mov edx, dword [0x4452b0]
cmp dword [edx + ebp*8], 0x7be1e2d2
sete bl
xor ecx, ecx
mov byte [esp + 0x3b], bl
test bl, 1
jne 0x41f120
jmp 0x41f1a7
mov edx, dword [edx + ebp*8 + 4]
mov ecx, 2
cmp edx, edi
je 0x41f1a7
mov eax, dword [0x4452b4]
xor ecx, ecx
lea ecx, [esp + 0xc4]
lea ebx, [esp + 0xa8]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], 0x2c
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], ecx
mov eax, dword [esp + 0x64]
mov dword [esp + 0x20], eax
mov dword [esp + 0x24], 0x848
mov dword [esp + 0x28], 2
mov dword [esp + 0x2c], 1
mov dword [esp + 0x30], ebx
mov dword [esp + 0x34], 0
call fcn.00437870
mov ecx, 1
test byte [esp + 0x3b], 1
je 0x41f1b0
jmp 0x41f1b8
add ebp, 1
jmp 0x41f0ee
cmp ecx, 2
je 0x41f1bf
mov edi, eax
xor ebx, ebx
cmp edi, 0
jl 0x41f6de
mov dword [esp + 0x40], 0
xor ebx, ebx
xor esi, esi
mov eax, dword [esp + 0x64]
jmp 0x41f1dc
mov edi, dword [eax + 0x3c]
shr edi, 1
mov ecx, eax
add ecx, 0x38
mov dword [esp + 0xc0], ecx
mov dword [esp + 0x44], eax
mov eax, dword [eax + 0x38]
and eax, 0x400
cmp eax, 0
sete al
test al, 1
jne 0x41f208
jmp 0x41f40b
mov al, byte [esp + 0x74]
mov byte [esp + 0x84], al
mov word [esp + 0x54], 0x26db
mov word [esp + 0x56], 0x2626
xor eax, eax
mov dword [esp + 0x3c], ebx
cmp eax, 2
jae 0x41f292
movzx edx, word [esp + eax*2 + 0x54]
mov ecx, eax
add ecx, 0xcd82044d
mov ebx, edx
xor ebx, 0xffffffff
mov ebp, ecx
and ebp, ebx
mov ebx, ecx
xor ebx, edx
add ecx, ebx
sub ecx, ebp
mov ebx, eax
add ebx, 0x44d
and ebx, edx
mov edx, ecx
xor edx, 0xffffffff
mov ebp, ebx
and ebp, edx
xor ebx, 0xffffffff
and ecx, ebx
mov ebx, dword [esp + 0x3c]
sub ecx, ebp
mov edx, ecx
and edx, 0x2269
xor edx, 0x2269
and ecx, 0xdd96
sub ecx, edx
add cx, 1
mov word [esp + eax*2 + 0x54], cx
mov ecx, eax
shl ecx, 1
or eax, ecx
xor eax, 1
jmp 0x41f227
mov ebp, dword [esp + 0x44]
add ebp, 0x44
lea eax, [esp + 0x54]
mov dword [esp], ebp
mov dword [esp + 4], eax
mov dword [esp + 8], edi
call fcn.0041f7b0
cmp eax, 0
je 0x41f40b
mov al, byte [esp + 0x70]
mov byte [esp + 0x88], al
mov word [esp + 0xa2], 0xc7b2
mov word [esp + 0xa4], 0xc7b3
mov word [esp + 0xa6], 0xc45e
xor eax, eax
cmp eax, 3
jae 0x41f34d
movzx edx, word [esp + eax*2 + 0xa2]
mov dword [esp + 0x48], esi
mov esi, 0x6d797643
sub esi, eax
mov ebx, 0x6d797643
sub ebx, eax
or esi, ebx
mov ebx, esi
and ebx, edx
mov ecx, esi
xor ecx, edx
xor ecx, 0xffffffff
add esi, ecx
sub esi, ebx
mov ecx, esi
shl ecx, 1
xor ecx, 0xffffffff
add esi, ecx
mov ecx, 0x7643
sub ecx, eax
mov ebx, 0x7643
sub ebx, eax
and ecx, ebx
mov ebx, dword [esp + 0x3c]
xor edx, 0xffffffff
and ecx, edx
or esi, ecx
mov cx, 0xb21f
sub cx, si
mov esi, dword [esp + 0x48]
mov word [esp + eax*2 + 0xa2], cx
add eax, 1
jmp 0x41f2e1
lea eax, [esp + 0xa2]
mov dword [esp], ebp
mov dword [esp + 4], eax
mov dword [esp + 8], edi
call fcn.0041f7b0
cmp eax, 0
jne 0x41f36e
jmp 0x41f40b
mov eax, edi
sub eax, 0xffffffff
mov ecx, 2
mul ecx
seto dl
mov ecx, 0xffffffff
test dl, 1
jne 0x41f389
mov ecx, eax
mov dword [esp], ecx
call fcn.00407fa0
mov dword [esp], eax
mov dword [esp + 4], ebp
mov dword [esp + 8], edi
mov edi, eax
call fcn.004139a0
mov word [eax], 0
mov eax, dword [esp + 0x44]
mov eax, dword [eax + 0x28]
mov ecx, dword [esp + 0xc0]
mov edx, dword [ecx]
or edx, edx
xor edx, 0xffffffff
or edx, 0xffffffef
xor edx, 0xffffffff
xor ecx, ecx
cmp edx, 0
setne cl
mov edx, dword [esp + 0xec]
mov dword [esp + 0xc], edx
mov dword [esp + 8], eax
mov dword [esp], edi
and ecx, 1
mov dword [esp + 4], ecx
call dword [esp + 0xe8]
and al, 1
movzx eax, al
and bl, 1
movzx ecx, bl
or ecx, eax
cmp ecx, 0
setne bl
and bl, 1
mov dword [esp], edi
call fcn.00407fb0
jmp 0x41f40b
cmp esi, 0
je 0x41f416
mov edi, dword [esp + 0x40]
jmp 0x41f43d
mov dword [esp], 0x10900
call fcn.00435be0
mov edi, eax
cmp edi, 0
jne 0x41f439
xor esi, esi
mov eax, 2
mov edi, dword [esp + 0x44]
jmp 0x41f6d0
mov esi, edi
jmp 0x41f43d
cmp edi, esi
jne 0x41f6b7
mov dword [esp + 0x3c], ebx
mov al, byte [esp + 0x6c]
mov byte [esp + 0x8c], al
mov word [esp + 0x50], 0xc4f5
mov word [esp + 0x52], 0xddf7
xor eax, eax
mov dword [esp + 0x48], esi
cmp eax, 2
jae 0x41f4b9
movzx ecx, word [esp + eax*2 + 0x50]
mov edx, eax
add edx, 0x3cc75bce
mov esi, edx
shl esi, 1
and esi, 0x5bc8ea3a
xor edx, 0xade4751d
add edx, esi
mov ebx, edx
add ebx, 0xa432
mov esi, edx
add esi, 0xa432
add edx, 0xa432
and esi, edx
and esi, ecx
or ebx, ecx
xor esi, ebx
add si, 0x5718
mov word [esp + eax*2 + 0x50], si
add eax, 1
jmp 0x41f468
mov eax, dword [esp + 0x50]
mov dword [esp + 0xbc], eax
mov eax, dword [esp + 0x78]
mov dword [esp + 0xb8], eax
mov al, byte [esp + 0x7c]
mov byte [esp + 0xa0], al
mov word [esp + 0x58], 0x7338
mov word [esp + 0x5a], 0x7327
xor eax, eax
mov ebx, dword [esp + 0x3c]
cmp eax, 2
jae 0x41f512
mov cx, word [esp + eax*2 + 0x58]
mov dx, ax
add dx, 0xb94f
xor dx, cx
add dx, 0x3588
mov word [esp + eax*2 + 0x58], dx
add eax, 1
jmp 0x41f4ee
mov esi, dword [esp + 0x58]
xor ebp, ebp
mov ecx, 2
cmp ebp, dword [0x4452ac]
jb 0x41f52a
jmp 0x41f5fd
mov eax, esi
mov esi, dword [0x4452b0]
cmp dword [esi + ebp*8], 0x7be1e2d2
sete dl
xor ecx, ecx
mov byte [esp + 0x3a], dl
test dl, 1
jne 0x41f54e
mov esi, eax
jmp 0x41f5ec
mov edx, dword [esi + ebp*8 + 4]
mov ecx, 2
mov esi, eax
cmp edx, esi
je 0x41f5ec
mov eax, dword [0x4452b4]
xor ecx, ecx
lea ecx, [esp + 0xc4]
lea ebx, [esp + 0xa8]
mov dword [esp], eax
mov dword [esp + 4], edx
mov dword [esp + 8], 0x2c
mov eax, dword [esp + 0xb8]
mov dword [esp + 0xc], eax
mov dword [esp + 0x10], 0
mov dword [esp + 0x14], 0
mov dword [esp + 0x18], 0
mov dword [esp + 0x1c], ecx
mov dword [esp + 0x20], edi
mov eax, dword [esp + 0xbc]
mov dword [esp + 0x24], eax
mov dword [esp + 0x28], 2
mov dword [esp + 0x2c], 0
mov dword [esp + 0x30], ebx
mov ebx, dword [esp + 0x3c]
mov dword [esp + 0x34], 0
call fcn.00437870
mov dword [esp + 0xb0], eax
mov ecx, 1
test byte [esp + 0x3a], 1
je 0x41f5f5
jmp 0x41f5fd
add ebp, 1
jmp 0x41f518
cmp ecx, 2
je 0x41f609
mov esi, dword [esp + 0xb0]
mov al, byte [esp + 0x68]
mov byte [esp + 0x90], al
mov word [esp + 0x4c], 0xc8cf
mov word [esp + 0x4e], 0x48cb
xor eax, eax
cmp eax, 2
jae 0x41f648
mov cx, word [esp + eax*2 + 0x4c]
mov dx, ax
add dx, 0x881a
xor dx, cx
add dx, 0xbf30
mov word [esp + eax*2 + 0x4c], dx
add eax, 1
jmp 0x41f624
mov eax, dword [esp + 0x4c]
cmp esi, eax
jne 0x41f688
xor eax, eax
mov esi, edi
jmp 0x41f656
mov ecx, esi
mov edx, dword [ecx]
cmp edx, 0
setne bl
test bl, 1
jne 0x41f667
jmp 0x41f675
shr edx, 2
shl edx, 2
mov esi, ecx
add esi, edx
mov eax, ecx
jmp 0x41f656
cmp eax, 0
mov ebx, dword [esp + 0x3c]
je 0x41f684
mov dword [eax], 0
xor esi, esi
jmp 0x41f688
cmp esi, 0
jge 0x41f6a0
mov esi, dword [esp + 0x48]
mov dword [esp], esi
call fcn.00435c10
mov eax, 2
jmp 0x41f6a8
xor eax, eax
mov esi, dword [esp + 0x48]
jmp 0x41f6a8
cmp eax, 0
je 0x41f6b7
mov dword [esp + 0x40], edi
mov edi, dword [esp + 0x44]
jmp 0x41f6d0
mov eax, dword [edi]
cmp eax, 0
je 0x41f6c8
mov ecx, edi
add ecx, eax
mov dword [esp + 0x40], ecx
jmp 0x41f6ce
mov dword [esp + 0x40], esi
jmp 0x41f6ce
xor eax, eax
test eax, eax
mov eax, edi
je 0x41f1dc
jmp 0x41f6dc
jmp 0x41f6de
mov eax, dword [esp + 0x64]
mov dword [esp], eax
call fcn.00435c10
mov eax, dword [esp + 0x78]
mov dword [esp + 0xb4], eax
mov al, byte [esp + 0x94]
mov byte [esp + 0x98], al
mov word [esp + 0x60], 0x7338
mov word [esp + 0x62], 0x7327
xor eax, eax
cmp eax, 2
jae 0x41f737
mov cx, word [esp + eax*2 + 0x60]
mov dx, ax
add dx, 0xb94f
xor dx, cx
add dx, 0x3588
mov word [esp + eax*2 + 0x60], dx
add eax, 1
jmp 0x41f713
mov edi, dword [esp + 0x60]
xor ebp, ebp
cmp ebp, dword [0x4452ac]
jb 0x41f747
jmp 0x41f79e
mov esi, ebx
mov eax, dword [0x4452b0]
cmp dword [eax + ebp*8], 0xb430e561
sete bl
test bl, 1
jne 0x41f75f
jmp 0x41f78e
mov eax, dword [eax + ebp*8 + 4]
cmp eax, edi
je 0x41f78e
mov ecx, dword [0x4452b4]
mov dword [esp], ecx
mov dword [esp + 4], eax
mov dword [esp + 8], 4
mov eax, dword [esp + 0xb4]
mov dword [esp + 0xc], eax
call fcn.00437870
jmp 0x41f78e
test bl, 1
je 0x41f797
mov ebx, esi
jmp 0x41f79e
add ebp, 1
mov ebx, esi
jmp 0x41f73d
and bl, 1
movzx eax, bl
add esp, 0xcc
pop esi
pop edi
pop ebx
pop ebp
ret