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

Disassembly:
push ebp
push ebx
push edi
push esi
sub esp, 0x18
mov esi, ecx
mov al, byte [esp + 0x38]
mov cl, byte [esp + 0x30]
cmp byte [esp + 0x2c], 0
je 0x436255
movzx ebx, byte [edx]
test bl, 1
je 0x436259
mov ebx, dword [edx + 4]
jmp 0x43625b
xor ebx, ebx
jmp 0x436261
shr ebx, 1
cmp ebx, 4
sete bl
mov ah, byte [esp + 0x34]
movsx ecx, cl
movsx edi, al
cmp ecx, 1
je 0x43630c
test ecx, ecx
jne case.default.0x436315
test bl, bl
mov dword [esp + 0xc], edi
mov dword [esp + 0x14], esi
mov dword [esp + 8], edx
mov dword [esp + 0x10], ebx
je 0x4365b2
mov ebp, dword [esp + 8]
movzx eax, byte [ebp]
mov edx, dword [ebp + 8]
mov edi, dword [ebp + 4]
lea ebx, [ebp + 4]
mov ecx, eax
add edi, edx
shr ecx, 1
test al, 1
lea eax, [edx + 3]
lea esi, [ebp + ecx + 1]
cmove eax, ebx
cmovne esi, edi
lea edi, [ebp + 1]
cmovne edi, edx
cmp eax, esi
mov dword [esp + 4], edi
je 0x4365b2
mov ebx, dword [esp + 4]
lea ecx, [ebx + 1]
cmp ecx, eax
je 0x4363fe
lea ecx, [eax + 1]
cmp ecx, esi
je 0x436432
mov ebp, eax
mov edx, esi
sub ebp, ebx
sub edx, eax
cmp ebp, edx
jne 0x436454
mov ebp, eax
sub ebp, ebx
cmp ebp, 0x20
jae 0x436545
mov ecx, eax
mov edx, ebx
jmp 0x43658f
cmp edi, 4
ja case.default.0x436315
jmp dword [edi*4 + 0x510e20]
movsx eax, ah
mov dword [esi], 0x4000203
test eax, eax
je 0x43667a
cmp eax, 2
je 0x43667a
cmp eax, 1
jne case.default.0x436315
test bl, bl
jne 0x43667a
mov ecx, edx
jmp 0x4366e8
movsx eax, ah
mov byte [esi], 3
mov byte [esi + 3], 4
cmp eax, 2
je 0x43641f
cmp eax, 1
jne 0x4363bc
mov word [esi + 1], 2
test bl, bl
je 0x4364fa
jmp 0x43667a
movsx eax, ah
mov byte [esi], 2
mov byte [esi + 3], 3
cmp eax, 2
je 0x4364ce
cmp eax, 1
je 0x4364dd
test eax, eax
jne case.default.0x436315
mov word [esi + 1], 0x400
jmp 0x43667a
movsx eax, ah
mov byte [esi], 3
mov byte [esi + 3], 4
cmp eax, 2
je 0x43641f
cmp eax, 1
je 0x436366
test eax, eax
jne case.default.0x436315
mov word [esi + 1], 2
jmp 0x43667a
movsx eax, ah
mov byte [esi], 2
mov byte [esi + 3], 4
cmp eax, 2
je 0x4364ec
cmp eax, 1
je 0x436508
test eax, eax
jne case.default.0x436315
mov word [esi + 1], 3
jmp 0x43667a
mov cl, byte [ebx]
sub esi, eax
je 0x436417
push esi
push eax
push ebx
mov byte [esp + 0xf], cl
call sub.api_ms_win_crt_private_l1_1_0.dll_memmove
mov cl, byte [esp + 0xf]
add esp, 0xc
mov byte [ebx + esi], cl
jmp 0x4365b2
mov word [esi + 1], 0x201
test bl, bl
jne 0x436516
jmp 0x43667a
mov cl, byte [eax]
sub eax, ebx
je 0x43644d
sub esi, eax
push eax
push ebx
push esi
mov byte [esp + 0xf], cl
call sub.api_ms_win_crt_private_l1_1_0.dll_memmove
mov cl, byte [esp + 0xf]
add esp, 0xc
mov byte [ebx], cl
jmp 0x4365b2
mov ebx, ebp
nop word cs:[eax + eax]
mov eax, ebx
mov ebx, edx
cdq
idiv ebx
test edx, edx
jne 0x436460
test ebx, ebx
je 0x4365b2
add ebx, dword [esp + 4]
nop word [eax + eax]
mov al, byte [ebx - 1]
lea ecx, [ebx + ebp - 1]
dec ebx
mov edi, ebx
mov byte [esp + 3], al
mov eax, dword [esp + 4]
nop word cs:[eax + eax]
nop dword [eax]
mov edx, ecx
movzx ecx, byte [ecx]
mov byte [edi], cl
mov edi, esi
mov ecx, ebp
sub edi, edx
sub ecx, edi
add ecx, eax
cmp ebp, edi
lea edi, [edx + ebp]
cmovl ecx, edi
mov edi, edx
cmp ecx, ebx
jne 0x4364a0
mov cl, byte [esp + 3]
cmp ebx, eax
mov byte [edx], cl
jne 0x436480
jmp 0x4365b2
mov word [esi + 1], 0x104
test bl, bl
jne 0x436516
jmp 0x43667a
mov word [esi + 1], 0x400
test bl, bl
je 0x4364fa
jmp 0x43667a
mov word [esi + 1], 0x300
test bl, bl
jne 0x43667a
mov ecx, edx
push 0x20
call fcn.0041ce10
jmp 0x43667a
mov word [esi + 1], 0x103
test bl, bl
je 0x43667a
movzx eax, byte [edx]
test al, 1
jne 0x43652f
shr eax, 1
lea ecx, [eax - 1]
add cl, cl
mov byte [edx], cl
mov byte [edx + eax], 0
jmp 0x43667a
mov eax, dword [edx + 4]
mov ecx, dword [edx + 8]
lea esi, [eax - 1]
mov dword [edx + 4], esi
mov byte [ecx + eax - 1], 0
jmp 0x43667a
mov edi, ebp
xor esi, esi
and edi, 0xffffffe0
lea ecx, [eax + edi]
lea edx, [ebx + edi]
nop word cs:[eax + eax]
nop dword [eax]
movups xmm0, xmmword [ebx + esi]
movups xmm1, xmmword [ebx + esi + 0x10]
movups xmm2, xmmword [eax + esi]
movups xmm3, xmmword [eax + esi + 0x10]
movups xmmword [ebx + esi], xmm2
movups xmmword [ebx + esi + 0x10], xmm3
movups xmmword [eax + esi], xmm0
movups xmmword [eax + esi + 0x10], xmm1
add esi, 0x20
cmp edi, esi
jne 0x436560
cmp ebp, edi
je 0x4365b2
sub eax, edx
xor esi, esi
nop word cs:[eax + eax]
nop dword [eax]
movzx ebx, byte [edx + esi]
mov bh, byte [ecx + esi]
mov byte [edx + esi], bh
mov byte [ecx + esi], bl
inc esi
cmp eax, esi
jne 0x4365a0
mov edi, dword [esp + 0xc]
mov ecx, dword [esp + 8]
mov esi, dword [esp + 0x14]
mov edx, dword [esp + 0x10]
mov al, byte [esp + 0x34]
cmp edi, 4
ja case.default.0x436315
jmp dword [edi*4 + 0x510e34]
movsx eax, al
mov dword [esi], 0x2000403
test eax, eax
je 0x43667a
cmp eax, 2
je 0x43667a
cmp eax, 1
jne case.default.0x436315
jmp 0x4366e4
movsx eax, al
mov byte [esi], 3
mov byte [esi + 3], 2
cmp eax, 2
je 0x43668e
cmp eax, 1
je 0x43669a
test eax, eax
jne case.default.0x436315
mov word [esi + 1], 4
jmp 0x43667a
movsx eax, al
mov byte [esi], 4
mov byte [esi + 3], 3
cmp eax, 2
je 0x436682
cmp eax, 1
je 0x4366a6
test eax, eax
jne case.default.0x436315
jmp 0x4366b5
movsx eax, al
mov byte [esi], 4
mov byte [esi + 3], 2
cmp eax, 2
je 0x4366bd
cmp eax, 1
je 0x4366c9
test eax, eax
jne case.default.0x436315
mov word [esi + 1], 0x300
jmp 0x43667a
movsx eax, al
mov byte [esi], 4
mov byte [esi + 3], 3
cmp eax, 2
je 0x436682
cmp eax, 1
je 0x4366de
test eax, eax
je 0x4366b5
mov dword [esi], 0x4000302
add esp, 0x18
pop esi
pop edi
pop ebx
pop ebp
ret
mov word [esi + 1], 0x102
test dl, dl
je 0x43667a
jmp 0x4366d3
mov word [esi + 1], 0x401
test dl, dl
je 0x43667a
jmp 0x4366d3
mov word [esi + 1], 4
test dl, dl
jne 0x43667a
jmp 0x4366e8
test dl, dl
jne 0x4366b5
push 0x20
push 1
push 0
call fcn.0041d2c0
mov word [esi + 1], 0x200
jmp 0x43667a
mov word [esi + 1], 3
test dl, dl
jne 0x43667a
jmp 0x4366e8
mov word [esi + 1], 0x301
test dl, dl
je 0x43667a
push 1
push 0
call fcn.0041d590
jmp 0x43667a
mov word [esi + 1], 0x200
test dl, dl
jne 0x43667a
push 0x20
push 1
push 0
call fcn.0041d2c0
jmp 0x43667a