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

Disassembly:
push ebp
mov ebp, esp
and esp, 0xfffffff8
push 0xffffffffffffffff
push 0x9541ae
mov eax, dword fs:[0]
push eax
sub esp, 0x148
mov eax, dword [0x99986c]
xor eax, esp
mov dword [esp + 0x140], eax
push ebx
push esi
push edi
mov eax, dword [0x99986c]
xor eax, esp
push eax
lea eax, [esp + 0x158]
mov dword fs:[0], eax
mov esi, ecx
lea ecx, [esp + 0x20]
mov dword [esp + 0x6c], esi
call fcn.008f06a0
xor edi, edi
mov dword [esp + 0x160], edi
lea ecx, [esp + 0x54]
call fcn.008f06a0
mov byte [esp + 0x160], 1
lea ecx, [esp + 0x3c]
call fcn.008f06a0
mov byte [esp + 0x160], 2
lea ecx, [esp + 0xa4]
call fcn.0090a020
mov byte [esp + 0x160], 3
mov eax, dword [esi]
cmp eax, edi
jne 0x90e020
mov eax, dword [esi + 0x18]
cmp eax, 5
jae 0x90e438
mov dword [esi + eax*4 + 4], 0xface010e
inc dword [esi + 0x18]
jmp 0x90e438
push eax
call fcn.0090d480
mov esi, eax
mov dl, byte [esi]
add esp, 4
mov dword [esp + 0x14], esi
mov dword [esp + 0x38], edi
test dl, dl
je 0x90e31a
mov eax, dword [esp + 0x30]
cmp dword [esp + 0x38], 0
jne 0x90e33a
mov edi, esi
mov dword [esp + 0x1c], edi
cmp dl, 0xd
je 0x90e076
mov cl, dl
lea esp, [esp]
cmp cl, 0xa
je 0x90e072
test cl, cl
je 0x90e072
mov cl, byte [edi + 1]
inc edi
cmp cl, 0xd
jne 0x90e060
mov dword [esp + 0x1c], edi
cmp dl, 0x2e
jne 0x90e08f
lea ecx, [esi + 1]
cmp edi, ecx
jne 0x90e08f
mov dword [esp + 0x38], 1
jmp 0x90e2e3
mov edi, dword [esp + 0x1c]
push 0
lea ecx, [esp + 0xa8]
mov dword [esp + 0x3c], 0
sub edi, esi
call fcn.00909e10
push edi
push esi
lea ecx, [esp + 0xac]
call fcn.0090a090
mov ebx, dword [eax]
cmp word [ebx], 0x20
je 0x90e267
mov eax, dword [esp + 0x30]
mov edx, eax
sub edx, dword [esp + 0x2c]
test edx, 0xfffffffe
je 0x90e0f1
lea eax, [esp + 0x14]
push eax
lea ecx, [esp + 0x24]
mov dword [esp + 0x18], 0
call fcn.0090df00
mov eax, dword [esp + 0x30]
sub eax, dword [esp + 0x2c]
lea edx, [esp + 0x14]
sar eax, 1
movzx ecx, ax
mov dword [esp + 0x14], ecx
push edx
lea ecx, [esp + 0x58]
call fcn.0090df00
movzx ecx, word [ebx]
mov dword [esp + 0x14], 0
test cx, cx
je 0x90e2df
mov eax, dword [esp + 0x30]
cmp cx, 0x3d
jne 0x90e204
cmp dword [esp + 0x14], 0
jne 0x90e204
mov edx, dword [esp + 0x2c]
mov dword [esp + 0x14], 1
mov dword [esp + 0x18], 0
test edx, edx
jne 0x90e155
xor ecx, ecx
jmp 0x90e15d
mov ecx, dword [esp + 0x34]
sub ecx, edx
sar ecx, 1
mov esi, eax
sub esi, edx
sar esi, 1
cmp esi, ecx
jae 0x90e175
xor ecx, ecx
mov word [eax], cx
add eax, 2
mov dword [esp + 0x30], eax
jmp 0x90e1a0
mov esi, eax
cmp edx, eax
jbe 0x90e180
call fcn.0091bc53
mov eax, dword [esp + 0x20]
lea edx, [esp + 0x18]
push edx
push esi
push eax
lea eax, [esp + 0xa8]
push eax
lea ecx, [esp + 0x30]
call fcn.0090de50
mov eax, dword [esp + 0x30]
sub eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x48]
sar eax, 1
movzx esi, ax
mov dword [esp + 0x18], esi
test edx, edx
jne 0x90e1b9
xor ecx, ecx
jmp 0x90e1c1
mov ecx, dword [esp + 0x50]
sub ecx, edx
sar ecx, 1
mov eax, dword [esp + 0x4c]
mov edi, eax
sub edi, edx
sar edi, 1
cmp edi, ecx
jae 0x90e1db
mov word [eax], si
add eax, 2
mov dword [esp + 0x4c], eax
jmp 0x90e251
mov esi, eax
cmp edx, eax
jbe 0x90e1e6
call fcn.0091bc53
mov eax, dword [esp + 0x3c]
lea ecx, [esp + 0x18]
push ecx
push esi
push eax
lea edx, [esp + 0x88]
push edx
lea ecx, [esp + 0x4c]
call fcn.0090de50
jmp 0x90e251
mov esi, dword [esp + 0x2c]
test esi, esi
jne 0x90e210
xor edx, edx
jmp 0x90e218
mov edx, dword [esp + 0x34]
sub edx, esi
sar edx, 1
mov edi, eax
sub edi, esi
sar edi, 1
cmp edi, edx
jae 0x90e22e
mov word [eax], cx
add eax, 2
mov dword [esp + 0x30], eax
jmp 0x90e255
mov edi, eax
cmp esi, eax
jbe 0x90e239
call fcn.0091bc53
mov eax, dword [esp + 0x20]
push ebx
push edi
push eax
lea eax, [esp + 0x80]
push eax
lea ecx, [esp + 0x30]
call fcn.0090de50
mov eax, dword [esp + 0x30]
movzx ecx, word [ebx + 2]
add ebx, 2
test cx, cx
jne 0x90e124
jmp 0x90e2e3
add ebx, 2
cmp word [ebx], 0x20
je 0x90e267
movzx edx, word [ebx]
test dx, dx
je 0x90e2df
mov eax, dword [esp + 0x30]
lea esp, [esp]
mov esi, dword [esp + 0x2c]
test esi, esi
jne 0x90e28c
xor ecx, ecx
jmp 0x90e294
mov ecx, dword [esp + 0x34]
sub ecx, esi
sar ecx, 1
mov edi, eax
sub edi, esi
sar edi, 1
cmp edi, ecx
jae 0x90e2aa
mov word [eax], dx
add eax, 2
mov dword [esp + 0x30], eax
jmp 0x90e2d1
mov edi, eax
cmp esi, eax
jbe 0x90e2b5
call fcn.0091bc53
mov eax, dword [esp + 0x20]
push ebx
push edi
push eax
lea ecx, [esp + 0x98]
push ecx
lea ecx, [esp + 0x30]
call fcn.0090de50
mov eax, dword [esp + 0x30]
movzx edx, word [ebx + 2]
add ebx, 2
test dx, dx
jne 0x90e280
jmp 0x90e2e3
mov eax, dword [esp + 0x30]
mov esi, dword [esp + 0x1c]
mov cl, byte [esi]
mov dword [esp + 0x14], esi
test cl, cl
je 0x90e309
cmp cl, 0xd
je 0x90e2fb
cmp cl, 0xa
jne 0x90e309
mov cl, byte [esi + 1]
inc esi
mov dword [esp + 0x14], esi
test cl, cl
jne 0x90e2f1
jmp 0x90e313
mov dl, byte [esi]
test dl, dl
jne 0x90e041
cmp dword [esp + 0x38], 0
jne 0x90e33a
mov eax, dword [esp + 0x6c]
mov ecx, dword [eax + 0x18]
cmp ecx, 5
jae 0x90e438
mov dword [eax + ecx*4 + 4], 0xface0106
inc dword [eax + 0x18]
jmp 0x90e438
sub eax, dword [esp + 0x2c]
test eax, 0xfffffffe
je 0x90e35b
lea edx, [esp + 0x18]
push edx
lea ecx, [esp + 0x24]
mov dword [esp + 0x1c], 0
call fcn.0090df00
xor esi, esi
lea edi, [esi + 1]
lea eax, [esp + esi + 0x9c]
push eax
lea ecx, [esp + 0x18]
push ecx
call fcn.0090d510
add esp, 8
test eax, eax
je 0x90e3c4
add esi, edi
cmp esi, 6
jb 0x90e360
mov al, byte [esp + 0x9c]
mov bl, byte [esp + 0x9d]
test al, al
jne 0x90e3dd
mov eax, dword [0x99960c]
movzx edx, bl
cmp eax, edx
jbe 0x90e3a7
cmp dword [esp + 0x9e], eax
jae 0x90e3e1
mov eax, dword [esp + 0x6c]
mov ecx, dword [eax + 0x18]
cmp ecx, 5
jae 0x90e438
mov dword [eax + ecx*4 + 4], 0xface0108
add dword [eax + 0x18], edi
jmp 0x90e438
mov eax, dword [esp + 0x6c]
mov ecx, dword [eax + 0x18]
cmp ecx, 5
jae 0x90e438
mov dword [eax + ecx*4 + 4], 0xface0107
add dword [eax + 0x18], edi
jmp 0x90e438
cmp al, 2
ja 0x90e3a7
mov eax, dword [esp + 0x9e]
push eax
call fcn.0084dd30
add esp, 4
mov dword [esp + 0x1c], eax
test eax, eax
jne 0x90e4ab
mov eax, dword [esp + 0x6c]
mov ecx, dword [eax + 0x18]
cmp ecx, 5
jae 0x90e414
mov dword [eax + ecx*4 + 4], 0xface010a
add dword [eax + 0x18], edi
mov esi, dword [esp + 0x1c]
test esi, esi
je 0x90e438
mov ecx, dword [esp + 0x9e]
push ecx
push 0xcc
push esi
call fcn.0091bcb0
push esi
call fcn.0084dd20
add esp, 0x10
mov byte [esp + 0x160], 2
lea ecx, [esp + 0xa4]
call fcn.009098c0
mov byte [esp + 0x160], 1
lea ecx, [esp + 0x3c]
call fcn.009343d0
mov byte [esp + 0x160], 0
lea ecx, [esp + 0x54]
call fcn.009343d0
mov dword [esp + 0x160], 0xffffffff
lea ecx, [esp + 0x20]
call fcn.009343d0
mov eax, 0x998e08
mov ecx, dword [esp + 0x158]
mov dword fs:[0], ecx
pop ecx
pop edi
pop esi
pop ebx
mov ecx, dword [esp + 0x140]
xor ecx, esp
call fcn.0091b0aa
mov esp, ebp
pop ebp
ret
mov edx, dword [esp + 0x9e]
xor esi, esi
test edx, edx
jbe 0x90e4e3
mov ecx, dword [esp + 0x1c]
lea edx, [esi + ecx]
push edx
lea eax, [esp + 0x18]
push eax
call fcn.0090d510
add esp, 8
test eax, eax
je 0x90e512
add esi, edi
cmp esi, dword [esp + 0x9e]
jb 0x90e4b8
mov edx, dword [esp + 0x9e]
mov ecx, dword [esp + 0x14]
push ecx
call fcn.0090d480
add esp, 4
cmp byte [eax], 0
je 0x90e52f
mov eax, dword [esp + 0x6c]
mov ecx, dword [eax + 0x18]
cmp ecx, 5
jae 0x90e414
mov dword [eax + ecx*4 + 4], 0xface010c
jmp 0x90e411
mov eax, dword [esp + 0x6c]
mov ecx, dword [eax + 0x18]
cmp ecx, 5
jae 0x90e414
mov dword [eax + ecx*4 + 4], 0xface010b
jmp 0x90e411
xor eax, eax
movzx ecx, bl
test edx, edx
jbe 0x90e561
mov esi, dword [esp + 0x1c]
cmp eax, edx
jne 0x90e546
mov byte [eax + esi], 0
jmp 0x90e54f
mov bl, byte [ecx + 0x999610]
xor byte [eax + esi], bl
add ecx, edi
cmp dword [0x99960c], ecx
ja 0x90e55b
xor ecx, ecx
add eax, edi
cmp eax, edx
jb 0x90e538
cmp byte [esp + 0x9c], 2
jb 0x90e57c
push 0xfde9
lea ecx, [esp + 0xa8]
call fcn.00909520
xor esi, esi
push esi
lea ecx, [esp + 0xa8]
call fcn.00909e10
mov edx, dword [esp + 0x9e]
mov eax, dword [esp + 0x1c]
push edx
push eax
lea ecx, [esp + 0xac]
call fcn.0090a090
mov ebx, dword [eax]
mov eax, dword [esp + 0x30]
cmp word [ebx], si
je 0x90e84e
mov dword [esp + 0x38], esi
mov dword [esp + 0x14], esi
jmp 0x90e5c0
sub eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x60]
sar eax, 1
movzx esi, ax
mov dword [esp + 0x18], esi
test edx, edx
jne 0x90e5d9
xor ecx, ecx
jmp 0x90e5e1
mov ecx, dword [esp + 0x68]
sub ecx, edx
sar ecx, 1
mov eax, dword [esp + 0x64]
mov edi, eax
sub edi, edx
sar edi, 1
cmp edi, ecx
jae 0x90e5fb
mov word [eax], si
add eax, 2
mov dword [esp + 0x64], eax
jmp 0x90e622
mov esi, eax
cmp edx, eax
jbe 0x90e606
call fcn.0091bc53
mov eax, dword [esp + 0x54]
lea ecx, [esp + 0x18]
push ecx
push esi
push eax
lea edx, [esp + 0x98]
push edx
lea ecx, [esp + 0x64]
call fcn.0090de50
movzx ecx, word [ebx]
mov eax, dword [esp + 0x30]
cmp cx, 0x3d
je 0x90e69f
nop
cmp cx, 0xd
je 0x90e69f
cmp cx, 0xa
je 0x90e69f
test cx, cx
je 0x90e69f
mov esi, dword [esp + 0x2c]
test esi, esi
jne 0x90e64d
xor edx, edx
jmp 0x90e655
mov edx, dword [esp + 0x34]
sub edx, esi
sar edx, 1
mov edi, eax
sub edi, esi
sar edi, 1
cmp edi, edx
jae 0x90e66b
mov word [eax], cx
add eax, 2
mov dword [esp + 0x30], eax
jmp 0x90e692
mov edi, eax
cmp esi, eax
jbe 0x90e676
call fcn.0091bc53
mov eax, dword [esp + 0x20]
push ebx
push edi
push eax
lea eax, [esp + 0x80]
push eax
lea ecx, [esp + 0x30]
call fcn.0090de50
mov eax, dword [esp + 0x30]
movzx ecx, word [ebx + 2]
add ebx, 2
cmp cx, 0x3d
jne 0x90e630
mov edx, dword [esp + 0x2c]
test edx, edx
jne 0x90e6ab
xor ecx, ecx
jmp 0x90e6b3
mov ecx, dword [esp + 0x34]
sub ecx, edx
sar ecx, 1
mov esi, eax
sub esi, edx
sar esi, 1
cmp esi, ecx
jae 0x90e6cb
xor ecx, ecx
mov word [eax], cx
add eax, 2
mov dword [esp + 0x30], eax
jmp 0x90e6f6
mov esi, eax
cmp edx, eax
jbe 0x90e6d6
call fcn.0091bc53
mov eax, dword [esp + 0x20]
lea edx, [esp + 0x38]
push edx
push esi
push eax
lea eax, [esp + 0x88]
push eax
lea ecx, [esp + 0x30]
call fcn.0090de50
mov eax, dword [esp + 0x30]
cmp word [ebx], 0x3d
jne 0x90e6ff
add ebx, 2
sub eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x48]
sar eax, 1
movzx esi, ax
mov dword [esp + 0x18], esi
test edx, edx
jne 0x90e718
xor ecx, ecx
jmp 0x90e720
mov ecx, dword [esp + 0x50]
sub ecx, edx
sar ecx, 1
mov eax, dword [esp + 0x4c]
mov edi, eax
sub edi, edx
sar edi, 1
cmp edi, ecx
jae 0x90e73a
mov word [eax], si
add eax, 2
mov dword [esp + 0x4c], eax
jmp 0x90e75e
mov esi, eax
cmp edx, eax
jbe 0x90e745
call fcn.0091bc53
mov eax, dword [esp + 0x3c]
lea ecx, [esp + 0x18]
push ecx
push esi
push eax
lea edx, [esp + 0x78]
push edx
lea ecx, [esp + 0x4c]
call fcn.0090de50
movzx ecx, word [ebx]
mov eax, dword [esp + 0x30]
cmp cx, 0xd
je 0x90e7d9
jmp 0x90e770
cmp cx, 0xa
je 0x90e7d9
test cx, cx
je 0x90e7d9
mov esi, dword [esp + 0x2c]
test esi, esi
jne 0x90e787
xor edx, edx
jmp 0x90e78f
mov edx, dword [esp + 0x34]
sub edx, esi
sar edx, 1
mov edi, eax
sub edi, esi
sar edi, 1
cmp edi, edx
jae 0x90e7a5
mov word [eax], cx
add eax, 2
mov dword [esp + 0x30], eax
jmp 0x90e7cc
mov edi, eax
cmp esi, eax
jbe 0x90e7b0
call fcn.0091bc53
mov eax, dword [esp + 0x20]
push ebx
push edi
push eax
lea eax, [esp + 0xa0]
push eax
lea ecx, [esp + 0x30]
call fcn.0090de50
mov eax, dword [esp + 0x30]
movzx ecx, word [ebx + 2]
add ebx, 2
cmp cx, 0xd
jne 0x90e770
mov edx, dword [esp + 0x2c]
test edx, edx
jne 0x90e7e5
xor ecx, ecx
jmp 0x90e7ed
mov ecx, dword [esp + 0x34]
sub ecx, edx
sar ecx, 1
mov esi, eax
sub esi, edx
sar esi, 1
cmp esi, ecx
jae 0x90e805
xor ecx, ecx
mov word [eax], cx
add eax, 2
mov dword [esp + 0x30], eax
jmp 0x90e830
mov esi, eax
cmp edx, eax
jbe 0x90e810
call fcn.0091bc53
mov eax, dword [esp + 0x20]
lea edx, [esp + 0x14]
push edx
push esi
push eax
lea eax, [esp + 0x90]
push eax
lea ecx, [esp + 0x30]
call fcn.0090de50
mov eax, dword [esp + 0x30]
movzx ecx, word [ebx]
cmp cx, 0xd
je 0x90e83f
cmp cx, 0xa
jne 0x90e844
add ebx, 2
jmp 0x90e830
cmp word [ebx], 0
jne 0x90e5c0
sub eax, dword [esp + 0x2c]
mov edx, dword [esp + 0x60]
sar eax, 1
movzx esi, ax
mov dword [esp + 0x18], esi
test edx, edx
jne 0x90e867
xor ecx, ecx
jmp 0x90e86f
mov ecx, dword [esp + 0x68]
sub ecx, edx
sar ecx, 1
mov eax, dword [esp + 0x64]
mov edi, eax
sub edi, edx
sar edi, 1
cmp edi, ecx
jae 0x90e889
mov word [eax], si
add eax, 2
mov dword [esp + 0x64], eax
jmp 0x90e8b0
mov esi, eax
cmp edx, eax
jbe 0x90e894
call fcn.0091bc53
mov eax, dword [esp + 0x54]
lea ecx, [esp + 0x18]
push ecx
push esi
push eax
lea edx, [esp + 0x90]
push edx
lea ecx, [esp + 0x64]
call fcn.0090de50
mov eax, dword [esp + 0x9e]
mov esi, dword [esp + 0x1c]
push eax
push 0xcc
push esi
call fcn.0091bcb0
push esi
call fcn.0084dd20
mov eax, dword [esp + 0x5c]
sub eax, dword [esp + 0x58]
mov ecx, dword [esp + 0x40]
sub ecx, dword [esp + 0x3c]
sar eax, 1
sar ecx, 1
lea ecx, [ecx + eax*2]
lea eax, [eax + ecx + 1]
xor ecx, ecx
mov edx, 2
mul edx
seto cl
neg ecx
or ecx, eax
push ecx
call fcn.0084dd30
mov ebx, eax
mov eax, dword [esp + 0x60]
sub eax, dword [esp + 0x5c]
add esp, 0x14
sar eax, 1
mov word [ebx], ax
mov eax, dword [esp + 0x4c]
mov ecx, eax
sub ecx, dword [esp + 0x48]
xor edi, edi
sar ecx, 1
je 0x90e9ea
mov edx, dword [esp + 0x64]
sub edx, dword [esp + 0x60]
sar edx, 1
cmp edi, edx
jb 0x90e937
call fcn.0091bc53
mov eax, dword [esp + 0x60]
lea esi, [edi + edi]
mov cx, word [eax + esi]
mov word [esi + ebx + 2], cx
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x48]
mov edx, eax
sub edx, ecx
sar edx, 1
cmp edi, edx
jb 0x90e966
call fcn.0091bc53
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x48]
sub eax, ecx
mov cx, word [ecx + esi]
sar eax, 1
add eax, esi
mov word [ebx + eax*2 + 2], cx
mov edx, dword [esp + 0x64]
sub edx, dword [esp + 0x60]
lea eax, [edi + 1]
sar edx, 1
mov dword [esp + 0x38], eax
cmp eax, edx
jb 0x90e98f
call fcn.0091bc53
mov eax, dword [esp + 0x60]
lea ecx, [eax + esi + 2]
mov eax, dword [esp + 0x4c]
mov dword [esp + 0x18], ecx
mov ecx, dword [esp + 0x48]
mov edx, eax
sub edx, ecx
sar edx, 1
cmp edi, edx
jb 0x90e9ba
call fcn.0091bc53
mov eax, dword [esp + 0x4c]
mov ecx, dword [esp + 0x48]
mov edx, dword [esp + 0x18]
mov dx, word [edx]
sub dx, word [ecx + esi]
mov edi, dword [esp + 0x38]
sub eax, ecx
sar eax, 1
add eax, esi
dec dx
mov word [ebx + eax*2 + 4], dx
mov eax, dword [esp + 0x4c]
mov ecx, eax
sub ecx, dword [esp + 0x48]
sar ecx, 1
cmp edi, ecx
jb 0x90e924
mov esi, dword [esp + 0x30]
sub esi, dword [esp + 0x2c]
sar esi, 1
jne 0x90e9ff
call fcn.0091bc53
mov eax, dword [esp + 0x4c]
sub eax, dword [esp + 0x48]
mov ecx, dword [esp + 0x2c]
lea edx, [esi + esi]
push edx
sar eax, 1
lea edx, [eax + eax*2]
push ecx
lea eax, [ebx + edx*2 + 2]
push eax
call fcn.0091b5e0
add esp, 0xc
mov byte [esp + 0x160], 2
lea ecx, [esp + 0xa4]
call fcn.009098c0
mov byte [esp + 0x160], 4
mov eax, dword [esp + 0x48]
xor esi, esi
cmp eax, esi
je 0x90ea4d
push eax
call fcn.0084dd20
add esp, 4
mov dword [esp + 0x48], esi
mov dword [esp + 0x4c], esi
mov dword [esp + 0x50], esi
mov byte [esp + 0x160], 1
mov ecx, dword [esp + 0x3c]
push ecx
call fcn.0084dd20
add esp, 4
mov byte [esp + 0x160], 6
mov eax, dword [esp + 0x60]
cmp eax, esi
je 0x90ea87
push eax
call fcn.0084dd20
add esp, 4
mov dword [esp + 0x60], esi
mov dword [esp + 0x64], esi
mov dword [esp + 0x68], esi
mov byte [esp + 0x160], 0
mov edx, dword [esp + 0x54]
push edx
call fcn.0084dd20
add esp, 4
mov dword [esp + 0x160], 8
mov eax, dword [esp + 0x2c]
cmp eax, esi
je 0x90eac4
push eax
call fcn.0084dd20
add esp, 4
mov dword [esp + 0x2c], esi
mov dword [esp + 0x30], esi
mov dword [esp + 0x34], esi
mov dword [esp + 0x160], 0xffffffff
mov eax, dword [esp + 0x20]
push eax
call fcn.0084dd20
add esp, 4
mov eax, ebx
jmp 0x90e487