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

Disassembly:
push ebx
push esi
push edi
mov ebx, edx
push ebp
add esp, 0xffffffb0
mov edi, eax
mov eax, dword [ebx + 4]
mov esi, dword [ebx + 0x34]
mov dword [esp], eax
lea ebp, [ebx + 8]
mov eax, edi
mov dword [esp + 4], 1
mov edx, ebp
mov ecx, 0x1c
call fcn.00503610
test eax, eax
jne 0x503662
mov dword [esp + 4], 2
jmp 0x503cce
test edi, edi
jne 0x50366d
mov eax, ebp
call fcn.005058b8
mov eax, dword [ebx]
cmp eax, 7
jne 0x503678
jmp 0x5036a6
cmp eax, 8
jne 0x503684
jmp 0x503746
cmp eax, 9
jne 0x503690
jmp 0x50399e
cmp eax, 0xa
jne 0x50369c
jmp 0x503c7f
mov eax, 0xffffffe1
jmp 0x503cdb
test edi, edi
je 0x5036b0
mov dword [ebx], 7
mov ecx, 0x1c
mov edx, ebp
mov eax, edi
call fcn.00503610
test eax, eax
jne 0x5036d5
mov dword [ebx], 7
mov dword [esp + 4], 2
jmp 0x503cce
cmp dword [ebx + 0xc4], 0
jne 0x503705
test edi, edi
je 0x5036fc
mov eax, ebx
call fcn.00502e00
test eax, eax
jne 0x5036a6
mov dword [esp + 4], 2
jmp 0x503cce
mov eax, ebx
call fcn.00502df4
jmp 0x5036a6
test edi, edi
je 0x503727
mov ecx, esp
mov edx, ebp
mov eax, ebx
call fcn.00503600
test eax, eax
jne 0x503732
mov dword [esp + 4], 2
jmp 0x503cce
mov ecx, esp
mov edx, ebp
mov eax, ebx
call fcn.005035f4
cmp dword [esp], 0
jne 0x50373d
jmp 0x50399e
mov edx, dword [esp]
sub dword [ebx + 0xb8], edx
test edi, edi
je 0x503750
mov dword [ebx], 8
cmp dword [ebx + 0xb0], 0
je 0x503865
lea ecx, [esp + 8]
mov eax, edi
push ecx
lea ecx, [esp + 0x10]
push ecx
mov ecx, ebp
mov edx, dword [ebx + 0x100]
call fcn.00501c9c
mov ecx, 0x1c
mov edx, ebp
mov eax, edi
call fcn.00503610
test eax, eax
jne 0x50379b
mov dword [ebx], 8
mov dword [esp + 4], 2
jmp 0x503cce
cmp dword [ebx + 0xc0], 0
jne 0x5037ef
test edi, edi
je 0x5037c2
mov eax, ebx
call fcn.00502db4
test eax, eax
jne 0x5037c9
mov dword [esp + 4], 2
jmp 0x503cce
mov eax, ebx
call fcn.00502da8
lea edx, [esp + 8]
mov eax, edi
push edx
lea ecx, [esp + 0x10]
push ecx
mov ecx, ebp
mov edx, dword [ebx + 0x100]
call fcn.00501c9c
cmp dword [ebx + 0xb0], 0
je 0x503746
test edi, edi
jne 0x503811
lea ecx, [esp + 0xc]
mov edx, ebp
push ecx
lea ecx, [esp + 0xc]
mov eax, dword [ebx + 0x100]
call fcn.00501cd4
mov edx, dword [ebx + 0x60]
mov byte [edx + esi], al
jmp 0x50383d
lea ecx, [esp + 0x10]
mov edx, ebp
mov eax, dword [ebx + 0x100]
call fcn.00501c58
test eax, eax
jne 0x503833
mov dword [esp + 4], 2
jmp 0x503cce
mov cl, byte [esp + 0x10]
mov eax, dword [ebx + 0x60]
mov byte [eax + esi], cl
dec dword [ebx + 0xc0]
inc esi
cmp esi, dword [ebx + 0x40]
jne 0x503857
mov dword [ebx], 0xd
dec dword [esp]
jmp 0x503cce
dec dword [esp]
jne 0x503776
jmp 0x50398a
lea edx, [esi - 1]
mov eax, dword [ebx + 0x44]
and edx, eax
mov ecx, dword [ebx + 0x60]
mov dl, byte [ecx + edx]
mov byte [esp + 0x14], dl
lea edx, [esi - 2]
and edx, eax
mov eax, dword [ebx + 0x60]
mov cl, byte [eax + edx]
mov byte [esp + 0x15], cl
mov ecx, 0x1c
mov edx, ebp
mov eax, edi
call fcn.00503610
test eax, eax
jne 0x5038ab
mov dword [ebx], 8
mov dword [esp + 4], 2
jmp 0x503cce
cmp dword [ebx + 0xc0], 0
jne 0x5038e6
test edi, edi
je 0x5038d2
mov eax, ebx
call fcn.00502db4
test eax, eax
jne 0x5038d9
mov dword [esp + 4], 2
jmp 0x503cce
mov eax, ebx
call fcn.00502da8
cmp dword [ebx + 0xb0], 0
jne 0x503746
xor edx, edx
mov ecx, dword [ebx + 0x6c]
mov dl, byte [esp + 0x14]
mov al, byte [ecx + edx]
xor edx, edx
mov dl, byte [esp + 0x15]
mov ecx, dword [ebx + 0x6c]
or al, byte [ecx + edx + 0x100]
xor ecx, ecx
mov cl, al
mov eax, dword [ebx + 0x70]
xor edx, edx
test edi, edi
mov dl, byte [eax + ecx]
mov eax, dword [ebx + 0x78]
mov edx, dword [eax + edx*4]
mov dword [esp + 0x18], edx
mov cl, byte [esp + 0x14]
mov byte [esp + 0x15], cl
jne 0x503935
mov edx, ebp
mov eax, dword [esp + 0x18]
call fcn.00501b70
mov byte [esp + 0x14], al
jmp 0x50395d
lea ecx, [esp + 0x1c]
mov edx, ebp
mov eax, dword [esp + 0x18]
call fcn.00501c58
test eax, eax
jne 0x503955
mov dword [esp + 4], 2
jmp 0x503cce
mov cl, byte [esp + 0x1c]
mov byte [esp + 0x14], cl
mov ecx, dword [ebx + 0x60]
mov al, byte [esp + 0x14]
mov byte [ecx + esi], al
dec dword [ebx + 0xc0]
inc esi
cmp esi, dword [ebx + 0x40]
jne 0x503981
mov dword [ebx], 0xd
dec dword [esp]
jmp 0x503cce
dec dword [esp]
jne 0x503886
cmp dword [ebx + 0xb8], 0
jg 0x50399e
mov dword [ebx], 0xe
jmp 0x503cce
test edi, edi
je 0x5039a8
mov dword [ebx], 9
cmp dword [ebx + 0x10c], 0
jl 0x5039de
cmp dword [ebx + 0x10c], 0
je 0x5039be
xor edx, edx
jmp 0x5039c3
mov edx, 1
mov dword [ebx + 0xb4], edx
dec dword [ebx + 0x48]
mov eax, dword [ebx + 0x48]
and eax, 3
mov ecx, dword [ebx + eax*4 + 0x4c]
mov dword [ebx + 0x10c], ecx
jmp 0x503a35
cmp dword [ebx + 0xc8], 0
jne 0x503a0c
test edi, edi
je 0x503a05
mov eax, ebx
call fcn.00502e5c
test eax, eax
jne 0x503a0c
mov dword [esp + 4], 2
jmp 0x503cce
mov eax, ebx
call fcn.00502e50
test edi, edi
je 0x503a2c
mov edx, ebp
mov eax, ebx
call fcn.005034d0
test eax, eax
jne 0x503a35
mov dword [esp + 4], 2
jmp 0x503cce
mov edx, ebp
mov eax, ebx
call fcn.005034c4
mov edx, dword [ebx + 0x38]
cmp edx, dword [ebx + 0x3c]
je 0x503a4c
cmp esi, dword [ebx + 0x38]
jge 0x503a46
mov ecx, esi
jmp 0x503a49
mov ecx, dword [ebx + 0x38]
mov dword [ebx + 0x3c], ecx
mov eax, dword [ebx + 0x108]
mov dword [esp], eax
mov eax, dword [ebx + 0x10c]
cmp eax, dword [ebx + 0x3c]
jle 0x503ba0
cmp eax, 0x7ffffffc
jle 0x503a75
mov eax, 0xfffffff0
jmp 0x503cdb
cmp dword [esp], 4
jl 0x503b91
cmp dword [esp], 0x18
jg 0x503b91
mov edx, dword [ebx + 0x10c]
sub edx, dword [ebx + 0x3c]
dec edx
mov dword [esp + 0x20], edx
mov eax, dword [ebx + 0x248]
mov dword [esp + 0x24], eax
mov edx, dword [ebx + 0x24c]
mov dword [esp + 0x28], edx
mov ecx, dword [esp]
mov ecx, dword [eax + ecx*4 + 0x20]
mov dword [esp + 0x2c], ecx
mov eax, dword [ebx + 0x248]
mov edx, dword [esp]
xor ecx, ecx
mov cl, byte [eax + edx]
mov dword [esp + 0x30], ecx
mov eax, dword [esp + 0x30]
call fcn.00501098
mov ecx, dword [esp + 0x30]
mov edx, dword [esp + 0x20]
sar edx, cl
and eax, dword [esp + 0x20]
mov ecx, dword [ebx + 0xb4]
add dword [ebx + 0x48], ecx
imul eax, dword [esp]
add dword [esp + 0x2c], eax
mov eax, dword [esp + 0x24]
cmp dword [eax + 0xa4], 0
jne 0x503b07
mov eax, 0xffffffed
jmp 0x503cdb
mov ecx, dword [esp + 0x28]
cmp edx, dword [ecx + 0xc]
jge 0x503b82
mov eax, dword [esp + 0x24]
mov ecx, dword [esp]
mov eax, dword [eax + 0xa4]
add eax, dword [esp + 0x2c]
mov dword [esp + 0x34], ecx
mov ecx, dword [esp + 0x28]
movsx ecx, word [ecx + 0x18]
cmp edx, ecx
jne 0x503b42
mov edx, dword [ebx + 0x60]
add edx, esi
mov ecx, dword [esp + 0x34]
xchg edx, eax
call fcn.00500c34
jmp 0x503b5b
mov ecx, dword [esp + 0x28]
push ecx
push edx
mov edx, dword [ebx + 0x60]
add edx, esi
mov ecx, dword [esp + 0x3c]
xchg edx, eax
call fcn.0050655c
mov dword [esp + 0x34], eax
add esi, dword [esp + 0x34]
mov ecx, dword [esp + 0x34]
sub dword [ebx + 0xb8], ecx
cmp esi, dword [ebx + 0x40]
jl 0x503c63
mov dword [ebx], 0xf
jmp 0x503cce
mov eax, 0xfffffff5
jmp 0x503cdb
mov eax, 0xfffffff4
jmp 0x503cdb
mov edx, esi
sub edx, dword [ebx + 0x10c]
and edx, dword [ebx + 0x44]
mov dword [esp + 0x38], edx
mov ecx, dword [ebx + 0x60]
add ecx, esi
mov dword [esp + 0x3c], ecx
mov ecx, dword [ebx + 0x60]
add ecx, dword [esp + 0x38]
mov dword [esp + 0x40], ecx
mov eax, dword [esp]
add eax, esi
mov dword [esp + 0x44], eax
mov edx, dword [esp + 0x38]
add edx, dword [esp]
mov dword [esp + 0x48], edx
mov ecx, dword [ebx + 0x48]
and ecx, 3
mov eax, dword [ebx + 0x10c]
mov dword [ebx + ecx*4 + 0x4c], eax
inc dword [ebx + 0x48]
mov edx, dword [esp]
sub dword [ebx + 0xb8], edx
mov edx, dword [esp + 0x40]
mov eax, dword [esp + 0x3c]
call fcn.005016a0
cmp esi, dword [esp + 0x48]
jge 0x503c12
mov ecx, dword [esp + 0x44]
cmp ecx, dword [esp + 0x38]
jle 0x503c12
jmp 0x503c7f
mov ecx, dword [ebx + 0x40]
cmp ecx, dword [esp + 0x44]
jle 0x503c7f
mov eax, dword [ebx + 0x40]
cmp eax, dword [esp + 0x48]
jg 0x503c26
jmp 0x503c7f
add esi, dword [esp]
cmp dword [esp], 0x10
jle 0x503c63
cmp dword [esp], 0x20
jle 0x503c50
mov ecx, dword [esp]
add ecx, 0xfffffff0
mov edx, dword [esp + 0x40]
add edx, 0x10
mov eax, dword [esp + 0x3c]
add eax, 0x10
call fcn.00500c34
jmp 0x503c63
mov edx, dword [esp + 0x40]
add edx, 0x10
mov eax, dword [esp + 0x3c]
add eax, 0x10
call fcn.005016a0
cmp dword [ebx + 0xb8], 0
jg 0x5036a6
mov dword [ebx], 0xe
jmp 0x503cce
mov ecx, dword [ebx + 0x40]
sub ecx, esi
mov dword [esp + 0x4c], ecx
jmp 0x503cad
mov edx, esi
sub edx, dword [ebx + 0x10c]
and edx, dword [ebx + 0x44]
mov eax, dword [ebx + 0x60]
mov cl, byte [eax + edx]
mov byte [eax + esi], cl
inc esi
dec dword [esp + 0x4c]
jne 0x503cad
mov dword [ebx], 0x10
jmp 0x503cce
dec dword [esp]
jns 0x503c8a
cmp dword [ebx + 0xb8], 0
jg 0x5036a6
mov dword [ebx], 0xe
jmp 0x503cce
mov dword [ebx + 0x34], esi
mov ecx, dword [esp]
mov dword [ebx + 4], ecx
mov eax, dword [esp + 4]
add esp, 0x50
pop ebp
pop edi
pop esi
pop ebx
ret