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

Disassembly:
push ebp
mov ebp, dword [esp + 0xc]
push edi
mov edi, dword [esp + 0xc]
mov al, byte [edi + 4]
cmp al, byte [ebp + 4]
je 0x20416169
pop edi
xor al, al
pop ebp
ret 8
mov cl, byte [edi + 0x11c]
cmp cl, byte [ebp + 0x11c]
jne 0x20416162
mov edx, dword [edi + 8]
cmp edx, dword [ebp + 8]
jne 0x20416162
mov eax, dword [edi + 0xc]
cmp eax, dword [ebp + 0xc]
jne 0x20416162
mov ecx, dword [edi + 0x10]
cmp ecx, dword [ebp + 0x10]
jne 0x20416162
mov edx, dword [edi + 0x14]
cmp edx, dword [ebp + 0x14]
jne 0x20416162
mov eax, dword [edi + 0x18]
cmp eax, dword [ebp + 0x18]
jne 0x20416162
mov ecx, dword [edi + 0x1c]
cmp ecx, dword [ebp + 0x1c]
jne 0x20416162
mov eax, dword [edi + 0x28]
cmp eax, dword [ebp + 0x28]
jne 0x20416162
mov edx, dword [edi + 0xc8]
cmp edx, dword [ebp + 0xc8]
jne 0x20416162
mov ecx, dword [edi + 0x3c]
cmp ecx, dword [ebp + 0x3c]
jne 0x20416162
mov edx, dword [edi + 0x50]
cmp edx, dword [ebp + 0x50]
jne 0x20416162
mov ecx, dword [edi + 0xdc]
cmp ecx, dword [ebp + 0xdc]
jne 0x20416162
mov edx, dword [edi + 0x64]
cmp edx, dword [ebp + 0x64]
jne 0x20416162
mov ecx, dword [edi + 0x78]
cmp ecx, dword [ebp + 0x78]
jne 0x20416162
mov edx, dword [edi + 0x8c]
cmp edx, dword [ebp + 0x8c]
jne 0x20416162
mov ecx, dword [edi + 0xa0]
cmp ecx, dword [ebp + 0xa0]
jne 0x20416162
mov edx, dword [edi + 0xb4]
cmp edx, dword [ebp + 0xb4]
jne 0x20416162
push ebx
push esi
xor esi, esi
test eax, eax
jle 0x20416265
add edi, 0x20
add ebp, 0x20
mov eax, esi
mov ecx, edi
call fcn.2040d4d0
mov ebx, dword [eax]
mov eax, esi
mov ecx, ebp
call fcn.2040d4d0
cmp ebx, dword [eax]
jne 0x204167a6
mov eax, dword [esp + 0x14]
add esi, 1
cmp esi, dword [eax + 0x28]
jl 0x20416237
mov ebp, dword [esp + 0x18]
mov edi, eax
xor esi, esi
cmp dword [edi + 0xc8], esi
jle 0x204162bb
add ebp, 0xc0
add edi, 0xc0
jmp 0x20416280
mov eax, esi
mov ecx, ebp
call fcn.2040d3f0
mov ebx, eax
mov eax, esi
mov ecx, edi
call fcn.2040d3f0
push ebx
push eax
call fcn.20406430
add esp, 8
test eax, eax
jne 0x204167a6
mov ecx, dword [esp + 0x14]
add esi, 1
cmp esi, dword [ecx + 0xc8]
jl 0x20416280
mov ebp, dword [esp + 0x18]
mov edi, ecx
xor esi, esi
cmp dword [edi + 0x3c], esi
jle 0x20416321
lea ebx, [edi + 0x34]
add ebp, 0x34
jmp 0x204162d0
mov eax, esi
mov ecx, ebx
call fcn.2046c460
mov edi, dword [eax]
mov eax, esi
mov ecx, ebp
call fcn.2046c460
cmp edi, dword [eax]
jne 0x204167a6
mov eax, esi
mov ecx, ebx
call fcn.2046c460
mov edi, dword [eax + 4]
add eax, 4
mov eax, esi
mov ecx, ebp
call fcn.2046c460
add eax, 4
cmp edi, dword [eax]
jne 0x204167a6
mov edx, dword [esp + 0x14]
add esi, 1
cmp esi, dword [edx + 0x3c]
jl 0x204162d0
mov ebp, dword [esp + 0x18]
mov edi, edx
xor esi, esi
cmp dword [edi + 0x50], esi
jle 0x20416387
mov ebx, dword [esp + 0x14]
mov ebp, dword [esp + 0x18]
add ebx, 0x48
add ebp, 0x48
mov eax, esi
mov ecx, ebx
call fcn.2046c460
mov edi, dword [eax]
mov eax, esi
mov ecx, ebp
call fcn.2046c460
cmp edi, dword [eax]
jne 0x204167a6
mov eax, esi
mov ecx, ebx
call fcn.2046c460
mov edi, dword [eax + 4]
add eax, 4
mov eax, esi
mov ecx, ebp
call fcn.2046c460
add eax, 4
cmp edi, dword [eax]
jne 0x204167a6
mov eax, dword [esp + 0x14]
add esi, 1
cmp esi, dword [eax + 0x50]
jl 0x20416336
mov ebp, dword [esp + 0x18]
mov edi, eax
xor esi, esi
cmp dword [edi + 0xdc], esi
jle 0x20416400
mov ebp, dword [esp + 0x18]
mov edi, dword [esp + 0x14]
add ebp, 0xd4
add edi, 0xd4
mov ecx, esi
mov edx, ebp
call fcn.204185c0
mov ecx, esi
mov edx, edi
mov ebx, eax
call fcn.204185c0
push ebx
push eax
call fcn.20406430
add esp, 8
test eax, eax
jne 0x204167a6
mov ecx, esi
mov edx, ebp
call fcn.204185c0
mov ecx, esi
mov edx, edi
lea ebx, [eax + 0x10]
call fcn.204185c0
mov cl, byte [eax + 0x10]
cmp cl, byte [ebx]
jne 0x204167a6
mov edx, dword [esp + 0x14]
add esi, 1
cmp esi, dword [edx + 0xdc]
jl 0x204163a5
mov ebp, dword [esp + 0x18]
mov edi, edx
mov ecx, dword [edi + 0xb4]
xor eax, eax
test ecx, ecx
jle 0x2041644b
lea esp, [esp]
test eax, eax
jl 0x20416646
cmp eax, ecx
jge 0x20416646
cmp eax, dword [ebp + 0xb4]
jge 0x20416646
mov esi, dword [edi + 0xb0]
mov edx, dword [ebp + 0xb0]
mov esi, dword [esi + eax*4]
cmp esi, dword [edx + eax*4]
jne 0x204167a6
add eax, 1
cmp eax, ecx
jl 0x20416410
mov ecx, dword [edi + 0x64]
xor eax, eax
test ecx, ecx
jle 0x20416488
test eax, eax
jl 0x20416646
cmp eax, ecx
jge 0x20416646
cmp eax, dword [ebp + 0x64]
jge 0x20416646
mov esi, dword [edi + 0x60]
mov edx, dword [ebp + 0x60]
mov si, word [esi + eax*2]
cmp si, word [edx + eax*2]
jne 0x204167a6
add eax, 1
cmp eax, ecx
jl 0x20416454
mov ecx, dword [edi + 0x78]
xor eax, eax
test ecx, ecx
jle 0x204164e9
test eax, eax
jl 0x20416646
cmp eax, ecx
jge 0x20416646
cmp eax, dword [ebp + 0x78]
jge 0x20416646
mov esi, dword [edi + 0x74]
mov edx, dword [ebp + 0x74]
mov si, word [esi + eax*4]
cmp si, word [edx + eax*4]
jne 0x204167a6
cmp eax, ecx
jge 0x20416646
cmp eax, dword [ebp + 0x78]
jge 0x20416646
mov esi, dword [edi + 0x74]
mov si, word [esi + eax*4 + 2]
cmp si, word [edx + eax*4 + 2]
jne 0x204167a6
add eax, 1
cmp eax, ecx
jl 0x20416491
mov ecx, dword [edi + 0x8c]
xor eax, eax
test ecx, ecx
jle 0x20416532
test eax, eax
jl 0x20416646
cmp eax, ecx
jge 0x20416646
cmp eax, dword [ebp + 0x8c]
jge 0x20416646
mov esi, dword [edi + 0x88]
mov edx, dword [ebp + 0x88]
mov si, word [esi + eax*2]
cmp si, word [edx + eax*2]
jne 0x204167a6
add eax, 1
cmp eax, ecx
jl 0x204164f5
mov ecx, dword [edi + 0xa0]
xor eax, eax
test ecx, ecx
jle 0x204165a7
mov edi, edi
test eax, eax
jl 0x20416646
cmp eax, ecx
jge 0x20416646
cmp eax, dword [ebp + 0xa0]
jge 0x20416646
mov esi, dword [edi + 0x9c]
mov edx, dword [ebp + 0x9c]
mov si, word [esi + eax*4]
cmp si, word [edx + eax*4]
jne 0x204167a6
cmp eax, ecx
jge 0x20416646
cmp eax, dword [ebp + 0xa0]
jge 0x20416646
mov esi, dword [edi + 0x9c]
mov si, word [esi + eax*4 + 2]
cmp si, word [edx + eax*4 + 2]
jne 0x204167a6
add eax, 1
cmp eax, ecx
jl 0x20416540
mov edi, dword [edi + 0xec]
test edi, edi
jne 0x204165c5
cmp dword [ebp + 0xec], edi
jne 0x204167a6
test edi, edi
je 0x20416658
cmp dword [ebp + 0xec], 0
je 0x204167a6
test edi, edi
je 0x20416658
mov eax, dword [esp + 0x18]
mov ebx, dword [eax + 0xec]
test ebx, ebx
je 0x20416658
mov eax, edi
lea edx, [eax + 2]
lea ecx, [ecx]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x204165f0
sub eax, edx
mov ecx, ebx
sar eax, 1
lea esi, [ecx + 2]
mov dx, word [ecx]
add ecx, 2
test dx, dx
jne 0x20416604
sub ecx, esi
sar ecx, 1
cmp eax, ecx
jne 0x204167a6
mov ecx, ebx
mov eax, edi
nop
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x2041664b
test dx, dx
je 0x20416642
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x2041664b
add eax, 4
add ecx, 4
test dx, dx
jne 0x20416620
xor eax, eax
jmp 0x20416650
call fcn.20477d24
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x204167a6
mov ecx, dword [esp + 0x14]
mov ebx, dword [ecx + 0xe8]
test ebx, ebx
mov ebp, dword [esp + 0x18]
jne 0x2041667e
cmp dword [ebp + 0xe8], ebx
jne 0x204167a6
test ebx, ebx
je 0x20416703
cmp dword [ebp + 0xe8], 0
je 0x204167a6
test ebx, ebx
je 0x20416703
mov edi, dword [ebp + 0xe8]
test edi, edi
je 0x20416703
mov eax, ebx
lea edx, [eax + 2]
mov edi, edi
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x204166a0
sub eax, edx
mov ecx, edi
sar eax, 1
lea esi, [ecx + 2]
mov dx, word [ecx]
add ecx, 2
test dx, dx
jne 0x204166b4
sub ecx, esi
sar ecx, 1
cmp eax, ecx
jne 0x204167a6
mov ecx, edi
mov eax, ebx
nop
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x204166f6
test dx, dx
je 0x204166f2
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x204166f6
add eax, 4
add ecx, 4
test dx, dx
jne 0x204166d0
xor eax, eax
jmp 0x204166fb
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
jne 0x204167a6
mov edx, dword [esp + 0x14]
mov ebx, dword [edx + 0xf0]
test ebx, ebx
jne 0x20416725
cmp dword [ebp + 0xf0], ebx
jne 0x204167a6
test ebx, ebx
je 0x204167af
cmp dword [ebp + 0xf0], 0
je 0x204167a6
test ebx, ebx
je 0x204167af
mov edi, dword [ebp + 0xf0]
test edi, edi
je 0x204167af
mov eax, ebx
lea edx, [eax + 2]
mov cx, word [eax]
add eax, 2
test cx, cx
jne 0x20416745
sub eax, edx
mov ecx, edi
sar eax, 1
lea esi, [ecx + 2]
lea esp, [esp]
mov dx, word [ecx]
add ecx, 2
test dx, dx
jne 0x20416760
sub ecx, esi
sar ecx, 1
cmp eax, ecx
jne 0x204167a6
mov ecx, edi
mov eax, ebx
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x2041679d
test dx, dx
je 0x20416799
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x2041679d
add eax, 4
add ecx, 4
test dx, dx
jne 0x20416777
xor eax, eax
jmp 0x204167a2
sbb eax, eax
sbb eax, 0xffffffff
test eax, eax
je 0x204167af
pop esi
pop ebx
pop edi
xor al, al
pop ebp
ret 8
mov eax, dword [esp + 0x14]
lea ecx, [ebp + 0xf4]
add eax, 0xf4
mov edi, edi
mov dx, word [eax]
cmp dx, word [ecx]
jne 0x204167f0
test dx, dx
je 0x204167e2
mov dx, word [eax + 2]
cmp dx, word [ecx + 2]
jne 0x204167f0
add eax, 4
add ecx, 4
test dx, dx
jne 0x204167c0
pop esi
xor eax, eax
pop ebx
test eax, eax
pop edi
sete al
pop ebp
ret 8
sbb eax, eax
pop esi
sbb eax, 0xffffffff
pop ebx
test eax, eax
pop edi
sete al
pop ebp
ret 8