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

Disassembly:
mov ecx, dword fs:[0x14]
mov ecx, dword [ecx]
lea eax, [esp - 0x2e4]
cmp eax, dword [ecx + 8]
jbe 0x5ae03a
sub esp, 0x364
mov ecx, dword [esp + 0x368]
mov edx, dword [ecx + 0x138]
mov eax, dword [ecx + 0x13c]
test edx, edx
je 0x5ad533
nop
movzx ebx, byte [0x7bb648]
test bl, bl
je 0x5ad4f9
mov dword [0x7bb64c], edx
mov ebx, dword [0x7e1c20]
test ebx, ebx
jne 0x5ad4ee
mov dword [0x7bb650], eax
jmp 0x5ad4f9
lea edi, [0x7bb650]
call fcn.004610d0
mov dword [esp + 0x284], edx
mov dword [esp + 0x288], eax
mov edx, dword [esp + 0x284]
test edx, edx
je 0x5ad52b
nop
movzx ebx, byte [edx + 0xf]
mov ebp, ebx
and ebx, 0x1f
xchg ebp, eax
test al, 0x20
xchg ebp, eax
jne 0x5ad539
or ebx, 0x80
jmp 0x5ad539
xor ebx, ebx
xor edx, edx
xor eax, eax
jmp 0x5ad539
xor ebx, ebx
xor edx, edx
xor eax, eax
mov dword [esp + 0x24], ebx
mov dword [esp + 0x264], eax
mov dword [esp + 0x260], edx
mov dword [esp], edx
mov dword [esp + 4], eax
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 0x18
call fcn.004ae8a0
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
and eax, 0x1f
mov dword [esp + 0x7c], eax
cmp eax, 9
ja 0x5ad598
cmp eax, 7
jne 0x5ad580
mov eax, dword [ecx]
jmp 0x5ad5b5
cmp eax, 8
jne 0x5ad58a
movzx eax, byte [ecx]
jmp 0x5ad5b5
cmp eax, 9
jne 0x5adfff
movzx eax, word [ecx]
jmp 0x5ad5b5
cmp eax, 0xa
jne 0x5ad5a1
mov eax, dword [ecx]
jmp 0x5ad5b5
cmp eax, 0xb
jne 0x5ad5aa
mov eax, dword [ecx]
jmp 0x5ad5b5
cmp eax, 0xc
jne 0x5adfff
mov eax, dword [ecx]
mov dword [esp + 0x34], eax
mov ecx, dword [esp + 0x260]
mov dword [esp], ecx
mov edx, dword [esp + 0x264]
mov dword [esp + 4], edx
mov ebx, dword [esp + 0x24]
mov dword [esp + 8], ebx
mov dword [esp + 0xc], 0x17
call fcn.004ae8a0
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
and eax, 0x1f
mov dword [esp + 0x7c], eax
cmp eax, 9
ja 0x5ad61e
cmp eax, 7
jne 0x5ad602
mov eax, dword [ecx]
xor ecx, ecx
jmp 0x5ad642
cmp eax, 8
jne 0x5ad60e
movzx eax, byte [ecx]
xor ecx, ecx
jmp 0x5ad642
cmp eax, 9
jne 0x5adfc5
movzx eax, word [ecx]
xor ecx, ecx
jmp 0x5ad642
cmp eax, 0xa
jne 0x5ad629
mov eax, dword [ecx]
xor ecx, ecx
jmp 0x5ad642
cmp eax, 0xb
jne 0x5ad635
mov eax, dword [ecx]
mov ecx, dword [ecx + 4]
jmp 0x5ad642
cmp eax, 0xc
jne 0x5adfc5
mov eax, dword [ecx]
xor ecx, ecx
test ecx, ecx
seta dl
sete bl
test eax, eax
xchg ebp, ebx
seta bl
xchg ebp, ebx
and ebx, ebp
or ebx, edx
test bl, bl
je 0x5ad85f
mov dword [esp + 0x30], eax
mov edx, dword [esp + 0x34]
and edx, 0xf0000000
shr edx, 0x1c
mov dword [esp + 0x78], edx
mov ebx, dword [esp + 0x368]
movzx ebp, byte [ebx + 0x294]
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x5ad773
mov eax, dword [esp + 0x260]
mov dword [esp], eax
mov eax, dword [esp + 0x264]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0x16
call fcn.004ae8a0
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
and eax, 0x1f
mov dword [esp + 0x7c], eax
cmp eax, 9
ja 0x5ad6eb
cmp eax, 7
jne 0x5ad6d3
mov ecx, dword [ecx]
jmp 0x5ad708
cmp eax, 8
jne 0x5ad6dd
movzx ecx, byte [ecx]
jmp 0x5ad708
cmp eax, 9
jne 0x5adf8b
movzx ecx, word [ecx]
jmp 0x5ad708
cmp eax, 0xa
jne 0x5ad6f4
mov ecx, dword [ecx]
jmp 0x5ad708
cmp eax, 0xb
jne 0x5ad6fd
mov ecx, dword [ecx]
jmp 0x5ad708
cmp eax, 0xc
jne 0x5adf8b
mov ecx, dword [ecx]
mov dword [esp + 0x2c], ecx
lea edi, [esp + 0x90]
xor eax, eax
call fcn.00461318
mov ecx, dword [esp + 0x368]
mov edx, dword [ecx + 0x78]
mov esi, dword [ecx + 0x7c]
lea ebx, [0x606220]
cmp edx, ebx
jne 0x5adf75
lea edi, [esp + 0x90]
call fcn.00461630
mov eax, dword [esp + 0x2c]
sub eax, dword [esp + 0xac]
mov ecx, dword [esp + 0x368]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.005a8720
mov eax, dword [esp + 8]
mov ecx, 1
xor edx, edx
xor ebx, ebx
xor ebp, ebp
jmp 0x5adc41
mov dword [esp + 0x38], ecx
mov eax, dword [esp + 0x260]
mov dword [esp], eax
mov eax, dword [esp + 0x264]
mov dword [esp + 4], eax
mov eax, dword [esp + 0x24]
mov dword [esp + 8], eax
mov dword [esp + 0xc], 0x16
call fcn.004ae8a0
mov eax, dword [esp + 0x18]
mov ecx, dword [esp + 0x14]
and eax, 0x1f
mov dword [esp + 0x7c], eax
cmp eax, 9
ja 0x5ad7d6
cmp eax, 7
jne 0x5ad7be
mov ecx, dword [ecx]
jmp 0x5ad7f3
cmp eax, 8
jne 0x5ad7c8
movzx ecx, byte [ecx]
jmp 0x5ad7f3
cmp eax, 9
jne 0x5adbef
movzx ecx, word [ecx]
jmp 0x5ad7f3
cmp eax, 0xa
jne 0x5ad7df
mov ecx, dword [ecx]
jmp 0x5ad7f3
cmp eax, 0xb
jne 0x5ad7e8
mov ecx, dword [ecx]
jmp 0x5ad7f3
cmp eax, 0xc
jne 0x5adbef
mov ecx, dword [ecx]
mov dword [esp + 0x28], ecx
lea edi, [esp + 0x170]
xor eax, eax
call fcn.00461314
mov ecx, dword [esp + 0x368]
mov edx, dword [ecx + 0x78]
mov esi, dword [ecx + 0x7c]
lea ebx, [0x605ea0]
cmp edx, ebx
jne 0x5adbd9
lea edi, [esp + 0x170]
call fcn.00461608
mov eax, dword [esp + 0x188]
mov ecx, dword [esp + 0x28]
sub ecx, eax
mov eax, dword [esp + 0x368]
mov dword [esp], eax
mov dword [esp + 4], ecx
call fcn.005a8720
mov eax, dword [esp + 8]
mov ecx, 1
xor edx, edx
xor ebx, ebx
xor ebp, ebp
xor esi, esi
jmp 0x5ad89a
xor eax, eax
xor ecx, ecx
xor edx, edx
mov dword [esp + 0x36c], edx
mov dword [esp + 0x370], ecx
mov dword [esp + 0x374], eax
add esp, 0x364
ret
mov ecx, dword [esp + 0x74]
mov edx, dword [esp + 0x70]
mov eax, ebp
mov ebx, dword [esp + 0x64]
mov ebp, dword [esp + 0x60]
mov esi, dword [esp + 0x278]
mov dword [esp + 0x64], ebx
mov dword [esp + 0x60], ebp
mov edi, dword [esp + 0x38]
cmp edx, edi
setb bl
mov ebp, dword [esp + 0x30]
cmp ecx, ebp
xchg ebp, ebx
setbe bl
xchg ebp, ebx
cmp edx, edi
xchg edi, ebx
sete bl
xchg edi, ebx
and ebp, edi
or ebp, ebx
xchg ebp, eax
test al, al
xchg ebp, eax
je 0x5adb30
mov dword [esp + 0x48], ecx
mov dword [esp + 0x4c], edx
mov dword [esp + 0x270], esi
mov dword [esp + 0x40], eax
lea eax, [0x5e4900]
mov dword [esp], eax
call fcn.0040b6c0
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x368]
mov edx, dword [ecx + 0x2ac]
add edx, 0xfffffffc
mov ebx, dword [esp + 0x40]
cmp ebx, edx
jbe 0x5ad916
mov edx, dword [0x7bb130]
xor ebp, ebp
jmp 0x5ad94d
mov edx, dword [ecx + 0x28c]
mov ebp, dword [ecx + 0x288]
mov esi, dword [ecx + 0x290]
cmp ebx, edx
ja 0x5adbd0
sub edx, ebx
sub esi, ebx
xchg esi, ebx
neg ebx
xchg esi, ebx
sar esi, 0x1f
and esi, ebx
cmp edx, 3
jbe 0x5adbc4
mov ebp, dword [esi + ebp]
xor edx, edx
test edx, edx
jne 0x5adb05
mov dword [esp + 0x54], ebp
mov edx, dword [esp + 0x78]
test edx, edx
xchg esi, ebx
seta bl
xchg esi, ebx
and esi, 1
xchg esi, eax
test al, al
xchg esi, eax
jne 0x5ad97a
xor eax, eax
xor esi, esi
xor edi, edi
jmp 0x5ada0b
mov dword [esp + 0x27c], eax
mov dword [esp], ecx
lea ebp, [0x5da4e0]
mov dword [esp + 4], ebp
mov dword [esp + 8], eax
lea esi, [ebx + 4]
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], edx
call fcn.005a9440
mov eax, dword [esp + 0x27c]
movzx eax, byte [eax]
cmp al, 1
je 0x5ad9b6
cmp al, 2
jne 0x5ad9ee
mov byte [esp + 0x23], al
lea edi, [esp + 0x28c]
xor eax, eax
call fcn.00461347
mov ecx, dword [esp + 0x368]
mov edx, dword [ecx + 0xbc]
mov ebx, dword [ecx + 0xb8]
test edx, edx
je 0x5adb3f
mov ebp, dword [esp + 0x54]
xor esi, esi
jmp 0x5adb82
xor ecx, ecx
xor edx, edx
mov ebx, dword [esp + 0x40]
mov ebp, dword [esp + 0x54]
mov esi, eax
mov edi, ecx
mov ecx, dword [esp + 0x368]
mov eax, edx
mov edx, dword [esp + 0x78]
mov ecx, dword [esp + 0x60]
lea edx, [ecx + 1]
mov ebx, dword [esp + 0x64]
cmp ebx, edx
jb 0x5ada38
mov dword [esp + 0x88], eax
mov eax, dword [esp + 0x270]
mov dword [esp + 0x278], eax
mov eax, dword [esp + 0x88]
jmp 0x5ada9c
mov dword [esp + 0x268], eax
mov dword [esp + 0x58], edi
xchg esi, eax
mov byte [esp + 0x21], al
xchg esi, eax
lea eax, [0x5f5520]
mov dword [esp], eax
mov ebp, dword [esp + 0x270]
mov dword [esp + 4], ebp
mov dword [esp + 8], ecx
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], edx
call fcn.0044a7d0
mov esi, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov ebx, dword [esp + 0x1c]
lea edx, [eax + 1]
mov eax, dword [esp + 0x268]
mov ecx, dword [esp + 0x60]
mov ebp, dword [esp + 0x54]
mov edi, dword [esp + 0x58]
mov dword [esp + 0x278], esi
movzx esi, byte [esp + 0x21]
mov dword [esp + 0x60], edx
mov dword [esp + 0x64], ebx
mov edx, dword [esp + 0x48]
add edx, 1
mov dword [esp + 0x74], edx
shl ecx, 4
mov edx, dword [esp + 0x278]
mov dword [edx + ecx], ebp
xchg esi, eax
mov byte [edx + ecx + 4], al
xchg esi, eax
mov dword [edx + ecx + 0xc], edi
mov ebp, dword [esp + 0x48]
add ebp, 1
mov ebp, dword [esp + 0x4c]
adc ebp, 0
mov dword [esp + 0x70], ebp
mov esi, dword [0x7e1c20]
lea edi, [edx + ecx + 8]
mov ebx, dword [esp + 0x78]
mov ebp, dword [esp + 0x40]
lea ebp, [ebp + ebx + 4]
test esi, esi
jne 0x5adafb
mov dword [edx + ecx + 8], eax
jmp 0x5ad881
call fcn.004610d0
jmp 0x5ad881
mov eax, dword [esp + 0x270]
mov dword [esp + 0x36c], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0x370], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0x374], eax
add esp, 0x364
ret
mov eax, dword [esp + 0x64]
mov ecx, dword [esp + 0x60]
mov edx, esi
jmp 0x5ad865
lea edi, [esp + 0x28c]
call fcn.00461347
lea edi, [esp + 0x2d4]
lea esi, [esp + 0x28c]
call fcn.00461806
mov edx, dword [esp + 0x2e4]
mov ecx, dword [esp + 0x2e8]
movzx eax, byte [esp + 0x23]
jmp 0x5ad9f2
add ebx, 0x24
mov esi, ecx
mov ecx, dword [esp + 0x368]
mov dword [esp + 0x6c], esi
lea edi, [esp + 0x31c]
mov esi, ebx
call fcn.00461806
cmp dword [esp + 0x320], ebp
je 0x5adbaf
mov ecx, dword [esp + 0x6c]
inc ecx
cmp edx, ecx
jg 0x5adb76
mov ecx, dword [esp + 0x368]
jmp 0x5adb3f
lea edi, [esp + 0x28c]
lea esi, [esp + 0x31c]
call fcn.00461806
jmp 0x5adb4b
mov eax, 3
mov ecx, edx
call fcn.00461150
mov eax, ebx
mov ecx, edx
call fcn.004611c0
mov dword [esp], edx
mov dword [esp + 4], ebx
lea eax, [0x5e4100]
mov dword [esp + 8], eax
call fcn.00408da0
lea eax, [0x5f0f60]
mov dword [esp], eax
call fcn.0040b6c0
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x12
lea ecx, [0x6119f0]
mov dword [eax], ecx
mov ecx, dword [esp + 0x7c]
mov dword [eax + 8], ecx
lea ecx, [0x5ea280]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00435ee0
mov edi, dword [esp + 0x50]
lea ecx, [edi + 1]
mov eax, ebx
mov edx, dword [esp + 0x68]
mov ebx, dword [esp + 0x6c]
mov ebp, dword [esp + 0x274]
mov esi, dword [esp + 0x30]
cmp ecx, esi
ja 0x5adece
mov dword [esp + 0x64], edx
mov dword [esp + 0x50], ecx
mov dword [esp + 0x60], ebx
mov dword [esp + 0x270], ebp
mov dword [esp + 0x44], eax
lea eax, [0x5e4900]
mov dword [esp], eax
call fcn.0040b6c0
mov eax, dword [esp + 4]
mov ecx, dword [esp + 0x368]
mov edx, dword [ecx + 0x2ac]
add edx, 0xfffffffc
mov ebx, dword [esp + 0x44]
cmp ebx, edx
jbe 0x5adc98
mov edx, dword [0x7bb130]
xor ebp, ebp
jmp 0x5adccf
mov edx, dword [ecx + 0x28c]
mov ebp, dword [ecx + 0x288]
mov esi, dword [ecx + 0x290]
cmp ebx, edx
ja 0x5adf6c
sub edx, ebx
sub esi, ebx
xchg esi, ebx
neg ebx
xchg esi, ebx
sar esi, 0x1f
and esi, ebx
cmp edx, 3
jbe 0x5adf60
mov ebp, dword [esi + ebp]
xor edx, edx
test edx, edx
jne 0x5adea3
mov dword [esp + 0x3c], ebp
mov edx, dword [esp + 0x78]
test edx, edx
xchg esi, ebx
seta bl
xchg esi, ebx
and esi, 1
xchg esi, eax
test al, al
xchg esi, eax
jne 0x5adcfc
xor eax, eax
xor esi, esi
xor edi, edi
jmp 0x5add99
mov dword [esp + 0x280], eax
mov dword [esp], ecx
lea ebp, [0x5da4e0]
mov dword [esp + 4], ebp
mov dword [esp + 8], eax
lea esi, [ebx + 4]
mov dword [esp + 0xc], esi
mov dword [esp + 0x10], edx
call fcn.005a9440
mov eax, dword [esp + 0x14]
test eax, eax
jne 0x5ade78
mov ecx, dword [esp + 0x280]
movzx ecx, byte [ecx]
cmp cl, 1
je 0x5add44
cmp cl, 2
jne 0x5add7c
mov byte [esp + 0x23], cl
lea edi, [esp + 0x2b0]
xor eax, eax
call fcn.00461347
mov ecx, dword [esp + 0x368]
mov edx, dword [ecx + 0xbc]
mov ebx, dword [ecx + 0xb8]
test edx, edx
je 0x5aded9
mov ebp, dword [esp + 0x3c]
xor esi, esi
jmp 0x5adf1e
xor eax, eax
xor edx, edx
mov ebx, dword [esp + 0x44]
mov ebp, dword [esp + 0x3c]
mov esi, ecx
mov edi, eax
mov ecx, dword [esp + 0x368]
mov eax, edx
mov edx, dword [esp + 0x78]
mov ecx, dword [esp + 0x60]
lea edx, [ecx + 1]
mov ebx, dword [esp + 0x64]
cmp ebx, edx
jb 0x5addc6
mov dword [esp + 0x80], eax
mov eax, dword [esp + 0x270]
mov dword [esp + 0x274], eax
mov eax, dword [esp + 0x80]
jmp 0x5ade2c
mov dword [esp + 0x26c], eax
mov dword [esp + 0x5c], edi
xchg esi, eax
mov byte [esp + 0x22], al
xchg esi, eax
lea eax, [0x5f5520]
mov dword [esp], eax
mov ebp, dword [esp + 0x270]
mov dword [esp + 4], ebp
mov dword [esp + 8], ecx
mov dword [esp + 0xc], ebx
mov dword [esp + 0x10], edx
call fcn.0044a7d0
mov ebp, dword [esp + 0x14]
mov eax, dword [esp + 0x18]
mov edx, dword [esp + 0x1c]
inc eax
mov ecx, dword [esp + 0x60]
movzx esi, byte [esp + 0x22]
mov edi, dword [esp + 0x5c]
mov dword [esp + 0x274], ebp
mov ebx, edx
mov ebp, dword [esp + 0x3c]
mov edx, eax
mov eax, dword [esp + 0x26c]
mov dword [esp + 0x6c], edx
mov dword [esp + 0x68], ebx
shl ecx, 4
mov edx, dword [esp + 0x274]
mov dword [edx + ecx], ebp
xchg esi, eax
mov byte [edx + ecx + 4], al
xchg esi, eax
mov dword [edx + ecx + 0xc], edi
mov ebp, dword [0x7e1c20]
lea edi, [edx + ecx + 8]
mov esi, dword [esp + 0x78]
mov ebx, dword [esp + 0x44]
lea ebx, [ebx + esi + 4]
test ebp, ebp
jne 0x5ade6e
mov dword [edx + ecx + 8], eax
jmp 0x5adc29
call fcn.004610d0
jmp 0x5adc29
mov eax, dword [esp + 0x270]
mov dword [esp + 0x36c], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0x370], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0x374], eax
add esp, 0x364
ret
mov eax, dword [esp + 0x270]
mov dword [esp + 0x36c], eax
mov eax, dword [esp + 0x60]
mov dword [esp + 0x370], eax
mov eax, dword [esp + 0x64]
mov dword [esp + 0x374], eax
add esp, 0x364
ret
mov eax, edx
mov ecx, ebx
mov esi, ebp
jmp 0x5adb38
lea edi, [esp + 0x2b0]
call fcn.00461347
lea edi, [esp + 0x2f8]
lea esi, [esp + 0x2b0]
call fcn.00461806
mov edx, dword [esp + 0x308]
mov ecx, dword [esp + 0x30c]
mov eax, ecx
movzx ecx, byte [esp + 0x23]
jmp 0x5add80
add ebx, 0x24
mov esi, ecx
mov ecx, dword [esp + 0x368]
mov dword [esp + 0x6c], esi
lea edi, [esp + 0x340]
mov esi, ebx
call fcn.00461806
cmp dword [esp + 0x344], ebp
je 0x5adf4b
mov ecx, dword [esp + 0x6c]
inc ecx
cmp edx, ecx
jg 0x5adf12
mov ecx, dword [esp + 0x368]
jmp 0x5aded9
lea edi, [esp + 0x2b0]
lea esi, [esp + 0x340]
call fcn.00461806
jmp 0x5adee5
mov eax, 3
mov ecx, edx
call fcn.00461150
mov eax, ebx
mov ecx, edx
call fcn.004611c0
mov dword [esp], edx
mov dword [esp + 4], ebx
lea eax, [0x5e4100]
mov dword [esp + 8], eax
call fcn.00408da0
lea eax, [0x5f0f60]
mov dword [esp], eax
call fcn.0040b6c0
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x12
lea ecx, [0x6119f0]
mov dword [eax], ecx
mov ecx, dword [esp + 0x7c]
mov dword [eax + 8], ecx
lea ecx, [0x5ea280]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00435ee0
lea eax, [0x5f0f60]
mov dword [esp], eax
call fcn.0040b6c0
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x12
lea ecx, [0x6119f0]
mov dword [eax], ecx
mov ecx, dword [esp + 0x7c]
mov dword [eax + 8], ecx
lea ecx, [0x5ea280]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00435ee0
lea eax, [0x5f0f60]
mov dword [esp], eax
call fcn.0040b6c0
mov eax, dword [esp + 4]
mov dword [eax + 4], 0x12
lea ecx, [0x6119f0]
mov dword [eax], ecx
mov ecx, dword [esp + 0x7c]
mov dword [eax + 8], ecx
lea ecx, [0x5ea280]
mov dword [esp], ecx
mov dword [esp + 4], eax
call fcn.00435ee0
nop
call fcn.0045fcc0
jmp fcn.005ad490