Function at 0x436600
Capabilities:
Contain obfuscated stackstrings
Resolve function by parsing pe exports

Disassembly:
sub esp, 0x280
mov al, 0xc0
push ebx
mov byte [esp + 0x20], al
mov byte [esp + 0x21], al
mov byte [esp + 0x22], al
mov byte [esp + 0x24], al
mov byte [esp + 0x26], al
mov bl, 5
mov cl, 0x80
mov al, 0xff
mov dl, 0xa0
push esi
push edi
mov byte [esp + 0xc], 0
mov byte [esp + 0xd], 0
mov byte [esp + 0xe], 0
mov byte [esp + 0xf], bl
mov byte [esp + 0x10], cl
mov byte [esp + 0x11], 0
mov byte [esp + 0x12], 0
mov byte [esp + 0x13], bl
mov byte [esp + 0x14], 0
mov byte [esp + 0x15], cl
mov byte [esp + 0x16], 0
mov byte [esp + 0x17], bl
mov byte [esp + 0x18], cl
mov byte [esp + 0x19], cl
mov byte [esp + 0x1a], 0
mov byte [esp + 0x1b], bl
mov byte [esp + 0x1c], 0
mov byte [esp + 0x1d], 0
mov byte [esp + 0x1e], cl
mov byte [esp + 0x1f], bl
mov byte [esp + 0x20], cl
mov byte [esp + 0x21], 0
mov byte [esp + 0x22], cl
mov byte [esp + 0x23], bl
mov byte [esp + 0x24], 0
mov byte [esp + 0x25], cl
mov byte [esp + 0x26], cl
mov byte [esp + 0x27], bl
mov byte [esp + 0x2b], bl
mov byte [esp + 0x2d], 0xdc
mov byte [esp + 0x2f], bl
mov byte [esp + 0x30], 0xa6
mov byte [esp + 0x31], 0xca
mov byte [esp + 0x32], 0xf0
mov byte [esp + 0x33], bl
mov byte [esp + 0x34], 0xde
mov byte [esp + 0x35], 0
mov byte [esp + 0x36], 0
mov byte [esp + 0x37], bl
mov byte [esp + 0x38], al
mov byte [esp + 0x39], 0x5f
mov byte [esp + 0x3a], 0
mov byte [esp + 0x3b], bl
mov byte [esp + 0x3c], al
mov byte [esp + 0x3d], al
mov byte [esp + 0x3e], dl
mov byte [esp + 0x3f], bl
mov byte [esp + 0x40], 0
mov byte [esp + 0x41], 0x5f
mov byte [esp + 0x42], 0xd2
mov byte [esp + 0x43], bl
mov byte [esp + 0x44], 0x50
mov byte [esp + 0x45], 0xd2
mov byte [esp + 0x46], al
mov byte [esp + 0x47], bl
mov byte [esp + 0x48], 0x28
mov byte [esp + 0x49], 0xe1
mov byte [esp + 0x4a], 0x28
mov byte [esp + 0x4b], bl
mov byte [esp + 0x4c], 0xf5
mov byte [esp + 0x4d], 0xc3
mov byte [esp + 0x4e], 0x96
mov byte [esp + 0x4f], bl
mov byte [esp + 0x50], 0xe1
mov byte [esp + 0x51], dl
mov byte [esp + 0x52], 0x5f
mov byte [esp + 0x53], bl
mov byte [esp + 0x54], 0xc3
mov byte [esp + 0x64], al
mov byte [esp + 0x70], al
mov byte [esp + 0x75], al
mov byte [esp + 0x78], al
mov byte [esp + 0x79], al
mov byte [esp + 0x7e], al
mov byte [esp + 0x80], al
mov byte [esp + 0x82], al
mov byte [esp + 0x85], al
mov byte [esp + 0x86], al
mov byte [esp + 0x88], al
mov byte [esp + 0x89], al
mov byte [esp + 0x8a], al
mov byte [esp + 0x55], 0x7d
mov byte [esp + 0x56], 0x46
mov byte [esp + 0x57], bl
mov byte [esp + 0x58], 0x9b
mov byte [esp + 0x59], 0x55
mov byte [esp + 0x5a], 0x1e
mov byte [esp + 0x5b], bl
mov byte [esp + 0x5c], 0x46
mov byte [esp + 0x5d], 0x41
mov byte [esp + 0x5e], 0x37
mov byte [esp + 0x5f], bl
mov byte [esp + 0x60], 0x28
mov byte [esp + 0x61], 0x23
mov byte [esp + 0x62], 0x1e
mov byte [esp + 0x63], bl
mov byte [esp + 0x65], 0xfb
mov byte [esp + 0x66], 0xf0
mov byte [esp + 0x67], bl
mov byte [esp + 0x68], dl
mov byte [esp + 0x69], dl
mov byte [esp + 0x6a], 0xa4
mov byte [esp + 0x6b], bl
mov byte [esp + 0x6c], cl
mov byte [esp + 0x6d], cl
mov byte [esp + 0x6e], cl
mov byte [esp + 0x6f], bl
mov byte [esp + 0x71], 0
mov byte [esp + 0x72], 0
mov byte [esp + 0x73], bl
mov byte [esp + 0x74], 0
mov byte [esp + 0x76], 0
mov byte [esp + 0x77], bl
mov byte [esp + 0x7a], 0
mov byte [esp + 0x7b], bl
mov byte [esp + 0x7c], 0
mov byte [esp + 0x7d], 0
mov byte [esp + 0x7f], bl
mov byte [esp + 0x81], 0
mov byte [esp + 0x83], bl
mov byte [esp + 0x84], 0
mov byte [esp + 0x87], bl
mov byte [esp + 0x8b], bl
xor eax, eax
mov cl, byte [esp + eax + 0xe]
mov dl, byte [esp + eax + 0xd]
mov byte [eax + 0x5d508e], cl
mov cl, byte [esp + eax + 0xc]
mov byte [eax + 0x5d508d], dl
mov dl, byte [esp + eax + 0x66]
mov byte [eax + 0x5d508c], cl
mov cl, byte [esp + eax + 0x65]
mov byte [eax + 0x5d508f], 2
mov byte [eax + 0x5d5466], dl
mov dl, byte [esp + eax + 0x64]
mov byte [eax + 0x5d5465], cl
mov byte [eax + 0x5d5464], dl
mov byte [eax + 0x5d5467], 2
add eax, 4
cmp eax, 0x28
jl 0x436873
xor eax, eax
mov cl, byte [esp + eax + 0x36]
mov dl, byte [esp + eax + 0x35]
mov byte [eax + 0x5d50b6], cl
mov cl, byte [esp + eax + 0x34]
mov byte [eax + 0x5d50b5], dl
mov dl, byte [esp + eax + 0x4e]
mov byte [eax + 0x5d50b4], cl
mov cl, byte [esp + eax + 0x4d]
mov byte [eax + 0x5d50b7], bl
mov byte [eax + 0x5d544e], dl
mov dl, byte [esp + eax + 0x4c]
mov byte [eax + 0x5d544d], cl
mov byte [eax + 0x5d544c], dl
mov byte [eax + 0x5d544f], bl
add eax, 4
cmp eax, 0x18
jl 0x4368c7
mov eax, dword [0x5d4558]
test eax, eax
jne 0x4369ca
push str.palpalet_00.cgp
push 0x51fea4
lea eax, [esp + 0x94]
push 0x5190ac
push eax
call fcn.0050543d
lea ecx, [esp + 0x9c]
push 0x5190c4
push ecx
call fcn.00505b50
mov edi, eax
add esp, 0x18
test edi, edi
jne 0x436980
mov edx, dword [0x8e53fc]
push 0x10
push 0x51aa34
push 0x51aa10
push edx
call dword [sym.imp.USER32.dll_MessageBoxA]
pop edi
pop esi
xor eax, eax
pop ebx
add esp, 0x280
ret
mov esi, 0x5d50cd
push edi
call fcn.00506152
push edi
mov byte [esi + 1], al
call fcn.00506152
push edi
mov byte [esi], al
call fcn.00506152
mov byte [esi - 1], al
mov byte [esi + 2], bl
add esi, 4
add esp, 0xc
cmp esi, 0x5d544d
jl 0x436985
push edi
call fcn.005058b0
mov ecx, 0x100
mov esi, 0x5d508c
mov edi, 0x5d5498
add esp, 4
rep movsd dword es:[edi], dword [esi]
mov ecx, dword [0x5d28e0]
mov byte [0x5d532e], 0
mov byte [0x5d532d], 0
mov byte [0x5d532c], 0
mov eax, dword [ecx + 4]
add ecx, 0x90
push 0
push ecx
mov edx, dword [eax]
push 0x5d508c
push 4
push eax
call dword [edx + 0x14]
mov ecx, dword [0x5d28e0]
mov eax, dword [ecx + 0x90]
test eax, eax
jne 0x436a32
mov eax, dword [0x8e53fc]
push 0x10
push 0x51aa34
push 0x51a9f8
push eax
call dword [sym.imp.USER32.dll_MessageBoxA]
pop edi
pop esi
xor eax, eax
pop ebx
add esp, 0x280
ret
mov edx, dword [0x5192f0]
cmp edx, 8
jne 0x436a8a
mov ecx, dword [ecx + 8]
push eax
push ecx
mov edx, dword [ecx]
call dword [edx + 0x7c]
test eax, eax
je 0x436a84
mov esi, dword [sym.imp.USER32.dll_MessageBoxA]
mov eax, dword [0x8e53fc]
push 0x35
push 0x51815c
push 0x51a9d8
push eax
call esi
cmp eax, 2
je 0x436a26
mov ecx, dword [0x5d28e0]
mov eax, dword [ecx + 8]
mov ecx, dword [ecx + 0x90]
push ecx
push eax
mov edx, dword [eax]
call dword [edx + 0x7c]
test eax, eax
jne 0x436a51
mov edx, dword [0x5192f0]
cmp edx, 0x10
mov eax, 1
jne 0x436b1f
mov bl, byte [0x5d4138]
mov edi, dword [0x5d4c88]
push ebp
mov esi, 0x5d63bc
mov edx, 0x5d508e
mov al, byte [edx - 2]
mov cl, byte [0x5d3d28]
shr al, cl
mov ecx, dword [0x5d4880]
movzx bp, al
mov al, byte [edx - 1]
shl ebp, cl
mov cl, byte [0x5d5bb0]
shr al, cl
mov ecx, dword [0x5d4c84]
movzx ax, al
shl eax, cl
mov cl, bl
add ebp, eax
mov al, byte [edx]
shr al, cl
mov ecx, edi
movzx ax, al
shl eax, cl
lea ecx, [eax + ebp]
test cx, cx
mov word [esi], cx
jne 0x436afd
mov word [esi], 1
add edx, 4
add esi, 2
cmp edx, 0x5d548e
jl 0x436aaf
mov word [0x5d63bc], 0
mov eax, 1
pop ebp
jmp 0x436bc6
cmp edx, 0x18
jne 0x436b71
mov ecx, 0x5d589a
mov esi, 0x5d508d
mov dl, byte [esi - 1]
mov byte [ecx], dl
mov dl, byte [esi]
mov byte [ecx - 1], dl
mov dl, byte [esi + 1]
mov byte [ecx - 2], dl
mov bl, byte [ecx - 1]
or dl, bl
mov bl, byte [ecx]
or dl, bl
jne 0x436b4c
mov byte [ecx - 2], al
add esi, 4
add ecx, 3
cmp esi, 0x5d548d
jl 0x436b2e
mov byte [0x5d589a], 0
mov byte [0x5d5899], 0
mov byte [0x5d5898], 0
jmp 0x436bc6
cmp edx, 0x20
jl 0x436bc6
mov edx, 0x5d63bc
xor ecx, ecx
xor ebx, ebx
mov bl, byte [ecx + 0x5d508c]
mov esi, ebx
xor ebx, ebx
mov bl, byte [ecx + 0x5d508d]
shl esi, 8
add esi, ebx
xor ebx, ebx
mov bl, byte [ecx + 0x5d508e]
shl esi, 8
add esi, ebx
test esi, esi
mov dword [ecx + 0x5d4140], esi
jne 0x436bae
mov word [edx], ax
add edx, 2
add ecx, 4
cmp edx, 0x5d65bc
jl 0x436b7d
mov dword [0x5d4140], 0
mov ecx, dword [0x5d4558]
test ecx, ecx
jne 0x436bf6
xor ecx, ecx
mov edx, dword [0x51a74c]
mov byte [edx + ecx], cl
mov edx, dword [0x51a750]
mov byte [edx + ecx], cl
mov edx, dword [0x51a754]
mov byte [edx + ecx], cl
inc ecx
cmp ecx, 0x100
jl 0x436bd2
pop edi
pop esi
mov dword [0x5d4558], eax
mov dword [0x5d4568], 0
pop ebx
add esp, 0x280
ret